<!-- HTML header for doxygen 1.8.8-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <!-- For Mobile Devices -->
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
        <meta name="generator" content="Doxygen 1.8.17"/>
        <script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
        <title>QuEST: QuEST.h Source File</title>
        <!--<link href="tabs.css" rel="stylesheet" type="text/css"/>-->
        <script type="text/javascript" src="dynsections.js"></script>
        <link href="doxygen.css" rel="stylesheet" type="text/css" />
        <link href="style.css" rel="stylesheet" type="text/css"/>
        <link href='https://fonts.googleapis.com/css?family=Roboto+Slab' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <link href="jquery.smartmenus.bootstrap.css" rel="stylesheet">
        <script type="text/javascript" src="jquery.smartmenus.js"></script>
        <!-- SmartMenus jQuery Bootstrap Addon -->
        <script type="text/javascript" src="jquery.smartmenus.bootstrap.js"></script>
        <!-- SmartMenus jQuery plugin -->
    </head>
    <body>
        <nav class="navbar navbar-default" role="navigation">
            <div class="container">
                <div class="navbar-header">
                    <a class="navbar-brand"><img alt="Logo" src="logo.png"/></a>
                    <a class="navbar-brand"><b>QuEST</b> v3.2.0<br>The Quantum Exact Simulation Toolkit</a>
                </div>
            </div>
        </nav>
        <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
            <div class="content" id="content">
                <div class="container">
                    <div class="row">
                        <div class="col-sm-12 panel " style="padding-bottom: 15px;">
                            <div style="margin-bottom: 15px;">
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_d522931ffa1371640980b621734a4381.html">Users</a></li><li class="navelem"><a class="el" href="dir_70834f0dcd10de01d2e35ab402a2238e.html">tysonjones</a></li><li class="navelem"><a class="el" href="dir_1957401ef452be7528010ba0f4832a45.html">Desktop</a></li><li class="navelem"><a class="el" href="dir_dee4414d5d72b49a9429e079789ffd08.html">GithubRepos</a></li><li class="navelem"><a class="el" href="dir_a89b43d59316bb5045aa22bb53a67d29.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_f1fe56bf5ef15ff22696c757278c6962.html">QuEST</a></li><li class="navelem"><a class="el" href="dir_a9e976136714c36d9c92c62eb1305fc4.html">include</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">QuEST.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="QuEST_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Distributed under MIT licence. See https://github.com/QuEST-Kit/QuEST/blob/master/LICENCE.txt for details </span></div>
<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160; </div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor"># ifndef QUEST_H</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor"># define QUEST_H</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;<span class="preprocessor"># include &quot;<a class="code" href="QuEST__precision_8h.html">QuEST_precision.h</a>&quot;</span></div>
<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">// prevent C++ name mangling</span></div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00041"></a><span class="lineno">   41</span>&#160; </div>
<div class="line"><a name="l00042"></a><span class="lineno">   42</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;<span class="comment"> * private structures</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;    </div>
<div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;<span class="comment">// hide these from doxygen</span></div>
<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;<span class="keyword">enum</span> phaseGateType {SIGMA_Z=0, S_GATE=1, T_GATE=2};    </div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;    </div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    </div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;    <span class="keywordtype">char</span>* buffer;       <span class="comment">// generated QASM string</span></div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keywordtype">int</span> bufferSize;     <span class="comment">// maximum number of chars before overflow</span></div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    <span class="keywordtype">int</span> bufferFill;     <span class="comment">// number of chars currently in buffer</span></div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;    <span class="keywordtype">int</span> isLogging;      <span class="comment">// whether gates are being added to buffer</span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    </div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;} QASMLogger;</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span>ComplexArray</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;{</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *real; </div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *imag;</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;} ComplexArray;</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    </div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="comment"> * public structures</span></div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">   96</a></span>&#160; <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a> {<a class="code" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a63800f45b01ccc2608f754aee850bf4a">PAULI_I</a>=0, <a class="code" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a7abac7bb5b71e17382014c443244ad5c">PAULI_X</a>=1, <a class="code" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a2c64a9aaee27f6bcfef894d159e759bd">PAULI_Y</a>=2, <a class="code" href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a085c85cff6ba79c52d8b1e61c42ddddf">PAULI_Z</a>=3};</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="structComplex.html">  103</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structComplex.html">Complex</a></div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;{</div>
<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="structComplex.html#ab5b2e2eca02131fc74b289a83636cbe3">  105</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplex.html#ab5b2e2eca02131fc74b289a83636cbe3">real</a>;</div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="structComplex.html#a84f5439aad0ef495efdd3b4c1c02d27e">  106</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplex.html#a84f5439aad0ef495efdd3b4c1c02d27e">imag</a>;</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;} <a class="code" href="structComplex.html">Complex</a>;</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="structComplexMatrix2.html">  114</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a></div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;{</div>
<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="structComplexMatrix2.html#a3ea98d545b67a190ee6abe936c72076f">  116</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplexMatrix2.html#a3ea98d545b67a190ee6abe936c72076f">real</a>[2][2];</div>
<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="structComplexMatrix2.html#a3a2b60a9e00ccef054a6de3b9307c1be">  117</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplexMatrix2.html#a3a2b60a9e00ccef054a6de3b9307c1be">imag</a>[2][2];</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;} <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a>;</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="structComplexMatrix4.html">  125</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a></div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;{</div>
<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="structComplexMatrix4.html#aeadc9893e1b16cdd585dac523e73926c">  127</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplexMatrix4.html#aeadc9893e1b16cdd585dac523e73926c">real</a>[4][4];</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="structComplexMatrix4.html#a1f6bb840b5a9e6252980cab7a14f1a35">  128</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structComplexMatrix4.html#a1f6bb840b5a9e6252980cab7a14f1a35">imag</a>[4][4];</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;} <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a>;</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html">  136</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a></div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;{</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">  138</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">numQubits</a>;</div>
<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html#a446e8a077597e4f76049d547df0c9738">  139</a></span>&#160;  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> **<a class="code" href="structComplexMatrixN.html#a446e8a077597e4f76049d547df0c9738">real</a>;</div>
<div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="structComplexMatrixN.html#afde13e469a3b4f179f45e53d1ec0a7cf">  140</a></span>&#160;  <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> **<a class="code" href="structComplexMatrixN.html#afde13e469a3b4f179f45e53d1ec0a7cf">imag</a>;</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;} <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a>;</div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160; </div>
<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="structVector.html">  148</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structVector.html">Vector</a></div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;{</div>
<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="structVector.html#ab33976d8fda2e44b770f71269d698a25">  150</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="structVector.html#a0d0459a5b731ac5fb3dff2c6134e6e88">x</a>, <a class="code" href="structVector.html#abc3cfc6c8e297b1153a373d84b981e6b">y</a>, <a class="code" href="structVector.html#ab33976d8fda2e44b770f71269d698a25">z</a>;</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;} <a class="code" href="structVector.html">Vector</a>;</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="structPauliHamil.html">  158</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structPauliHamil.html">PauliHamil</a> </div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;{</div>
<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="structPauliHamil.html#a4b8d38c403553c07ceddcd40c46ce6c8">  162</a></span>&#160;    <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* <a class="code" href="structPauliHamil.html#a4b8d38c403553c07ceddcd40c46ce6c8">pauliCodes</a>;</div>
<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="structPauliHamil.html#ac1c6c9f6299cf83bbba88123216c3cac">  164</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* <a class="code" href="structPauliHamil.html#ac1c6c9f6299cf83bbba88123216c3cac">termCoeffs</a>;</div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="structPauliHamil.html#a737e46b40ef8990cf004d22eb9dbe2e4">  166</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structPauliHamil.html#a737e46b40ef8990cf004d22eb9dbe2e4">numSumTerms</a>;</div>
<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="structPauliHamil.html#acb49fff0e3160ea1904c9ca34408b4e1">  168</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structPauliHamil.html#acb49fff0e3160ea1904c9ca34408b4e1">numQubits</a>;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;} <a class="code" href="structPauliHamil.html">PauliHamil</a>;</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="structDiagonalOp.html">  178</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structDiagonalOp.html">DiagonalOp</a></div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;{</div>
<div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#a5131eeb67aafb4c19ac98270c3266742">  181</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structDiagonalOp.html#a5131eeb67aafb4c19ac98270c3266742">numQubits</a>;</div>
<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#a2c6eab631ef48b4978db026c98180eee">  183</a></span>&#160;    <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="structDiagonalOp.html#a2c6eab631ef48b4978db026c98180eee">numElemsPerChunk</a>;</div>
<div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#ada3bffa8e414f883e415dd74e46cd879">  185</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structDiagonalOp.html#ada3bffa8e414f883e415dd74e46cd879">numChunks</a>;</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#aa91713a22c95a383bba55e56c4a4e37a">  187</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structDiagonalOp.html#aa91713a22c95a383bba55e56c4a4e37a">chunkId</a>;</div>
<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#a1d66088bed235d524cd452b107694d5c">  189</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *<a class="code" href="structDiagonalOp.html#a1d66088bed235d524cd452b107694d5c">real</a>;</div>
<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#a85c3f52533efe831bbe40b9a48602388">  191</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *<a class="code" href="structDiagonalOp.html#a85c3f52533efe831bbe40b9a48602388">imag</a>;</div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="structDiagonalOp.html#aebb8af156861c4bc0dd4f35f6982570a">  193</a></span>&#160;    ComplexArray <a class="code" href="structDiagonalOp.html#aebb8af156861c4bc0dd4f35f6982570a">deviceOperator</a>;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;} <a class="code" href="structDiagonalOp.html">DiagonalOp</a>;</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="structQureg.html">  203</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structQureg.html">Qureg</a></div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;{</div>
<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="structQureg.html#acf78445e9435d09f44f0cc832c6aee79">  206</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structQureg.html#acf78445e9435d09f44f0cc832c6aee79">isDensityMatrix</a>;</div>
<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="structQureg.html#ad08dff5316b8937f4b2a1417591543dc">  208</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structQureg.html#ad08dff5316b8937f4b2a1417591543dc">numQubitsRepresented</a>;</div>
<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="structQureg.html#a0a86e8a50ea8c998b4a0a6640c5a1218">  210</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structQureg.html#a0a86e8a50ea8c998b4a0a6640c5a1218">numQubitsInStateVec</a>;</div>
<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="structQureg.html#ab0ea0358482b62f43fdd781469607d97">  213</a></span>&#160;    <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="structQureg.html#ab0ea0358482b62f43fdd781469607d97">numAmpsPerChunk</a>;</div>
<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="structQureg.html#adef4935cac95763c29164cf99b144ed4">  215</a></span>&#160;    <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="structQureg.html#adef4935cac95763c29164cf99b144ed4">numAmpsTotal</a>;</div>
<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="structQureg.html#ac2929e681d3d95591c18cf168dbbe4f0">  217</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structQureg.html#ac2929e681d3d95591c18cf168dbbe4f0">chunkId</a>;</div>
<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="structQureg.html#aa3deb7163aab90a61e755a1f200f5413">  219</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structQureg.html#aa3deb7163aab90a61e755a1f200f5413">numChunks</a>;</div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    </div>
<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="structQureg.html#a441e4cacef6bd17adb9813c7442d42fe">  222</a></span>&#160;    ComplexArray <a class="code" href="structQureg.html#a441e4cacef6bd17adb9813c7442d42fe">stateVec</a>; </div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="structQureg.html#aba97773694870ef35e378c036f486bb7">  224</a></span>&#160;    ComplexArray <a class="code" href="structQureg.html#aba97773694870ef35e378c036f486bb7">pairStateVec</a>;</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    </div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="structQureg.html#ac181d7b3b94fff179dc74d7935ecd9e1">  227</a></span>&#160;    ComplexArray <a class="code" href="structQureg.html#ac181d7b3b94fff179dc74d7935ecd9e1">deviceStateVec</a>;</div>
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="structQureg.html#a8bb9f7517470a0cc406951935f37b64f">  229</a></span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *<a class="code" href="structQureg.html#a2d0007a026a4231b338a5037c4e861b2">firstLevelReduction</a>, *<a class="code" href="structQureg.html#a8bb9f7517470a0cc406951935f37b64f">secondLevelReduction</a>;</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
<div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="structQureg.html#a6b7912365d7ad8ff9b986fcad0c6ca3a">  232</a></span>&#160;    QASMLogger* <a class="code" href="structQureg.html#a6b7912365d7ad8ff9b986fcad0c6ca3a">qasmLog</a>;</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    </div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;} <a class="code" href="structQureg.html">Qureg</a>;</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160; </div>
<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="structQuESTEnv.html">  242</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structQuESTEnv.html">QuESTEnv</a></div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;{</div>
<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="structQuESTEnv.html#aa648bb336cf8598467cb62db00b9cee8">  244</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structQuESTEnv.html#aa648bb336cf8598467cb62db00b9cee8">rank</a>;</div>
<div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="structQuESTEnv.html#af22aacd7c9905accae28484785c193b4">  245</a></span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structQuESTEnv.html#af22aacd7c9905accae28484785c193b4">numRanks</a>;</div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;} <a class="code" href="structQuESTEnv.html">QuESTEnv</a>;</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160; </div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;<span class="comment"> * public functions</span></div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;<a class="code" href="structQureg.html">Qureg</a> <a class="code" href="group__type.html#ga3392816c0643414165c2f5caeec17df0">createQureg</a>(<span class="keywordtype">int</span> numQubits, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160; </div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<a class="code" href="structQureg.html">Qureg</a> <a class="code" href="group__type.html#ga93e55b6650b408abb30a1d4a8bce757c">createDensityQureg</a>(<span class="keywordtype">int</span> numQubits, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;<a class="code" href="structQureg.html">Qureg</a> <a class="code" href="group__type.html#gabd07eee133dcd4e6ae7c2d2ce4c42978">createCloneQureg</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#ga8e1e6ad3254892edc2ee08712ea9d692">destroyQureg</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160; </div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> <a class="code" href="group__type.html#ga815103261fb22ea9690e1427571df00e">createComplexMatrixN</a>(<span class="keywordtype">int</span> numQubits);</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160; </div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#ga9df2f3d86be4a6e9aad481665e5e6753">destroyComplexMatrixN</a>(<a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> matr);</div>
<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160; </div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160; </div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#ga429f1b90b3ef06c786dec8c7f0eda4ce">initComplexMatrixN</a>(<a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> m, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> real[][1&lt;&lt;m.<a class="code" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">numQubits</a>], <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> imag[][1&lt;&lt;m.<a class="code" href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">numQubits</a>]);</div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="preprocessor">#endif </span></div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160; </div>
<div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;<a class="code" href="structPauliHamil.html">PauliHamil</a> <a class="code" href="group__type.html#ga35b28710877c462927366fa602e591cb">createPauliHamil</a>(<span class="keywordtype">int</span> numQubits, <span class="keywordtype">int</span> numSumTerms);</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#gac1c8ed909b33bd55ae680901006051b6">destroyPauliHamil</a>(<a class="code" href="structPauliHamil.html">PauliHamil</a> hamil);</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160; </div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<a class="code" href="structPauliHamil.html">PauliHamil</a> <a class="code" href="group__type.html#gaa77376c5e3518186eb085f37826d6008">createPauliHamilFromFile</a>(<span class="keywordtype">char</span>* fn);</div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160; </div>
<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#gadbe6701dda1d49168f2f23253e370a7a">initPauliHamil</a>(<a class="code" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* coeffs, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* codes);</div>
<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160; </div>
<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<a class="code" href="structDiagonalOp.html">DiagonalOp</a> <a class="code" href="group__type.html#gaebf896dd8d5eeaf9fd896f6cc8e334fe">createDiagonalOp</a>(<span class="keywordtype">int</span> numQubits, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160; </div>
<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#ga2c59f45fab56708f687b4104ee99bcd1">destroyDiagonalOp</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160; </div>
<div class="line"><a name="l00509"></a><span class="lineno">  509</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#gab75d5cdc622d2778bad24e3a8130aab9">syncDiagonalOp</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op);</div>
<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160; </div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#ga12a6c59ebbfba8bdb9453a4138027d46">initDiagonalOp</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* real, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* imag);</div>
<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160; </div>
<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#gafabb15a6c1cf49f8ecb67e1f35c77c1e">setDiagonalOpElems</a>(<a class="code" href="structDiagonalOp.html">DiagonalOp</a> op, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> startInd, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* real, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* imag, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> numElems);</div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160; </div>
<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__operator.html#gad2e953390342cd361cfb4064d47715e6">applyDiagonalOp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structDiagonalOp.html">DiagonalOp</a> op);</div>
<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160; </div>
<div class="line"><a name="l00601"></a><span class="lineno">  601</span>&#160;<a class="code" href="structComplex.html">Complex</a> <a class="code" href="group__calc.html#ga82f17e96a4cb7612fb9c6ef856df3810">calcExpecDiagonalOp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structDiagonalOp.html">DiagonalOp</a> op);</div>
<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160; </div>
<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#gacd5f0ee488157837a8483c1515817f98">reportState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160; </div>
<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#gaa33ed720560d051eb4126b4a534bc4c6">reportStateToScreen</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQuESTEnv.html">QuESTEnv</a> env, <span class="keywordtype">int</span> reportRank);</div>
<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160; </div>
<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga97d96af7c7ea7b31e32cbe3b25377e09">reportQuregParams</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00644"></a><span class="lineno">  644</span>&#160; </div>
<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#gab27234d9ccf440bb5e5d834e8f7e3938">reportPauliHamil</a>(<a class="code" href="structPauliHamil.html">PauliHamil</a> hamil);</div>
<div class="line"><a name="l00663"></a><span class="lineno">  663</span>&#160; </div>
<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__calc.html#ga73036c778d800703585ab3d8796a915f">getNumQubits</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160; </div>
<div class="line"><a name="l00676"></a><span class="lineno">  676</span>&#160;<span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> <a class="code" href="group__calc.html#ga8cbe422d4981bf06847d229a4c6aa3df">getNumAmps</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00677"></a><span class="lineno">  677</span>&#160; </div>
<div class="line"><a name="l00686"></a><span class="lineno">  686</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#gada7230491a50cd409f8b00f5ee1db953">initBlankState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00687"></a><span class="lineno">  687</span>&#160; </div>
<div class="line"><a name="l00696"></a><span class="lineno">  696</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#ga2f049055d4a51d0ea4d1a43b5234dedb">initZeroState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00697"></a><span class="lineno">  697</span>&#160; </div>
<div class="line"><a name="l00712"></a><span class="lineno">  712</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#ga234bd34016f08288532791903b9884b5">initPlusState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00713"></a><span class="lineno">  713</span>&#160; </div>
<div class="line"><a name="l00738"></a><span class="lineno">  738</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#ga0379e21efca0767a22607fc0e26a5a22">initClassicalState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> stateInd);</div>
<div class="line"><a name="l00739"></a><span class="lineno">  739</span>&#160; </div>
<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#ga9a348df3e1df623c3d4c4f12c3ee3fe8">initPureState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQureg.html">Qureg</a> pure);</div>
<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160; </div>
<div class="line"><a name="l00762"></a><span class="lineno">  762</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#gaa696c94112e5fbbc996af10dfc4e2c1c">initDebugState</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l00763"></a><span class="lineno">  763</span>&#160; </div>
<div class="line"><a name="l00782"></a><span class="lineno">  782</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#ga4589960486ec43dcd63bd985f1c4f398">initStateFromAmps</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* reals, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* imags);</div>
<div class="line"><a name="l00783"></a><span class="lineno">  783</span>&#160; </div>
<div class="line"><a name="l00802"></a><span class="lineno">  802</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#gabc0c64f8adf307d2a44184dc0f8ca66e">setAmps</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> startInd, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* reals, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* imags, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> numAmps);</div>
<div class="line"><a name="l00803"></a><span class="lineno">  803</span>&#160; </div>
<div class="line"><a name="l00814"></a><span class="lineno">  814</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#ga4534403b721977b669bff7bf4e37f0fb">cloneQureg</a>(<a class="code" href="structQureg.html">Qureg</a> targetQureg, <a class="code" href="structQureg.html">Qureg</a> copyQureg);</div>
<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160; </div>
<div class="line"><a name="l00848"></a><span class="lineno">  848</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga26baa057f5db8804825c2d611386753b">phaseShift</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160; </div>
<div class="line"><a name="l00891"></a><span class="lineno">  891</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga7214a79aa22ae7a50ad6f38615968cb0">controlledPhaseShift</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> idQubit1, <span class="keywordtype">int</span> idQubit2, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l00892"></a><span class="lineno">  892</span>&#160; </div>
<div class="line"><a name="l00932"></a><span class="lineno">  932</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga0832e39058d913ad47af44e97a854446">multiControlledPhaseShift</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> *controlQubits, <span class="keywordtype">int</span> numControlQubits, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160; </div>
<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga2fa310101ecffd6aeba96f77b7d85f56">controlledPhaseFlip</a> (<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> idQubit1, <span class="keywordtype">int</span> idQubit2);</div>
<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160; </div>
<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gad76781842af56821ed4e223bd776f057">multiControlledPhaseFlip</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> *controlQubits, <span class="keywordtype">int</span> numControlQubits);</div>
<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; </div>
<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga655ffcd4def2e127341c9488f5ca8455">sGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; </div>
<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gac15907193da5a7c48b9610a26e669064">tGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; </div>
<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;<a class="code" href="structQuESTEnv.html">QuESTEnv</a> <a class="code" href="group__type.html#ga8ba2c3388dd64d9348c3b091852d36d4">createQuESTEnv</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; </div>
<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__type.html#gaeff624226629d7063a8a776958a4f991">destroyQuESTEnv</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; </div>
<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77">syncQuESTEnv</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; </div>
<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__debug.html#gac7e38d768a1bd79019f88cc1e6295092">syncQuESTSuccess</a>(<span class="keywordtype">int</span> successCode);</div>
<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; </div>
<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#gaf8a14ae79c3fb2c0b5f6255cc37bebf9">reportQuESTEnv</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env);</div>
<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; </div>
<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga2d955c6e51067371eee69795532a2d62">getEnvironmentString</a>(<a class="code" href="structQuESTEnv.html">QuESTEnv</a> env, <a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">char</span> str[200]);</div>
<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; </div>
<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga11448560006dd165128e404b54ebb2f7">copyStateToGPU</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; </div>
<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga924ef2dbda6b733b4041270077c76ece">copyStateFromGPU</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; </div>
<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;<a class="code" href="structComplex.html">Complex</a> <a class="code" href="group__calc.html#ga30d6f8b7c766c9c9914b2c61a2fc0def">getAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; </div>
<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga1416145280c62c5dd5ec9bed89b4cd05">getRealAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; </div>
<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#gad575782de461d9ab0975b38cc7850f1a">getImagAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; </div>
<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga4a14d22379d399760b0cfc5c8053589b">getProbAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> index);</div>
<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; </div>
<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;<a class="code" href="structComplex.html">Complex</a> <a class="code" href="group__calc.html#gadca286c4ad5cde6124d4e80a7ab95a68">getDensityAmp</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> row, <span class="keywordtype">long</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> col);</div>
<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; </div>
<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#gab082910d33473ec29e1d5852943de468">calcTotalProb</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; </div>
<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaefaa7acba90373efe4e0f0b94987c734">compactUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplex.html">Complex</a> alpha, <a class="code" href="structComplex.html">Complex</a> beta);</div>
<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; </div>
<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga78b814256f851cac70fdf3cbf9cfc206">unitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; </div>
<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga8886a3793b21622c48cf3bad6e15082d">rotateX</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; </div>
<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga34312ff52cc28bcab3cbd2ff338fd081">rotateY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; </div>
<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gab23a8b022ec83b9d423961ca87cd8cb5">rotateZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; </div>
<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga4c708f066b244801e10f538b48b90145">rotateAroundAxis</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> rotQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle, <a class="code" href="structVector.html">Vector</a> axis);</div>
<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; </div>
<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; </div>
<div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga13f904b417f647c70d163770e65906fc">controlledRotateX</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; </div>
<div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gafbbded98b7233f5da06d74d1db5cbfdb">controlledRotateY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; </div>
<div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga7eb969c1dd6c949aecf716d2fba71120">controlledRotateZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; </div>
<div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga0c84c429cb1d7e2596706c1804dd9cba">controlledRotateAroundAxis</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle, <a class="code" href="structVector.html">Vector</a> axis);</div>
<div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; </div>
<div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaf7e15bf09c64082e0a8467998eb25623">controlledCompactUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplex.html">Complex</a> alpha, <a class="code" href="structComplex.html">Complex</a> beta);</div>
<div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; </div>
<div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaa3fb996a5cadd098f4acd8aec955cf9c">controlledUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; </div>
<div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaa700dc9657ade4cf16f1cad1624c5332">multiControlledUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keywordtype">int</span> numControlQubits, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; </div>
<div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga4193c14cfb918fa3291fb0648058d63e">pauliX</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; </div>
<div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga8e0f03e745778a89d6f59c3c25e32df8">pauliY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; </div>
<div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga5d80b490e3910aa737a81bb597cdfcc9">pauliZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; </div>
<div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga6532decd6c404189915563492f090e6f">hadamard</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; </div>
<div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaa5a138473a4433c853c6e66e7aabc237">controlledNot</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; </div>
<div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga5e5fdaa7d3dd449b3e2c5d4a01bd015a">controlledPauliY</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit);</div>
<div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; </div>
<div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga2a7946e6fa4f44c9ae0c6c9f683229ad">calcProbOfOutcome</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> measureQubit, <span class="keywordtype">int</span> outcome);</div>
<div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; </div>
<div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__normgate.html#ga34457f7f62ccd75fb7d3fe67cd2f815a">collapseToOutcome</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> measureQubit, <span class="keywordtype">int</span> outcome);</div>
<div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; </div>
<div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__normgate.html#ga2a3794103125f1e3cfa103f8b1963656">measure</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> measureQubit);</div>
<div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; </div>
<div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;<span class="keywordtype">int</span> <a class="code" href="group__normgate.html#gae192ac0759e46c7b20a7182020155240">measureWithStats</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> measureQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> *outcomeProb);</div>
<div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; </div>
<div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160;<a class="code" href="structComplex.html">Complex</a> <a class="code" href="group__calc.html#ga374ad70804998394ae41ebfe106258a6">calcInnerProduct</a>(<a class="code" href="structQureg.html">Qureg</a> bra, <a class="code" href="structQureg.html">Qureg</a> ket);</div>
<div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; </div>
<div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga658b3a5cab5e73a17a7fd76a83583a22">calcDensityInnerProduct</a>(<a class="code" href="structQureg.html">Qureg</a> rho1, <a class="code" href="structQureg.html">Qureg</a> rho2);</div>
<div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; </div>
<div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#gaa8437ef3bf135231e2916e64dde1c94e">seedQuESTDefault</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160; </div>
<div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga95012dad46509b4b461974c34cfd7b3d">seedQuEST</a>(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> <span class="keywordtype">int</span> *seedArray, <span class="keywordtype">int</span> numSeeds);</div>
<div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; </div>
<div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__qasm.html#ga65bf1906298ca6355e2942f4923d77b6">startRecordingQASM</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; </div>
<div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__qasm.html#gabdaa339967f0955176a4967f01364182">stopRecordingQASM</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160; </div>
<div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__qasm.html#gab3a410abab3e8beb394bd3bbfae8977c">clearRecordedQASM</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; </div>
<div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__qasm.html#gacf139d0a54b1f9e5c2f2feff742b8c76">printRecordedQASM</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; </div>
<div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__qasm.html#ga0054955857ce83b88e127d731796c23d">writeRecordedQASMToFile</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">char</span>* filename);</div>
<div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160; </div>
<div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gacc2667ac87482a7afdcb711b74bf732e">mixDephasing</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160; </div>
<div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga14282bdb1dc65760ca9ecbe6305eb770">mixTwoQubitDephasing</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> qubit1, <span class="keywordtype">int</span> qubit2, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160; </div>
<div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gae2ea9255b8b11a4a382231e5604dc4e3">mixDepolarising</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160; </div>
<div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gaea8509011985522bae857bd3b13c34ed">mixDamping</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160; </div>
<div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gacfc45a8fc86ee18f60866bbd0c874ed0">mixTwoQubitDepolarising</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> qubit1, <span class="keywordtype">int</span> qubit2, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob);</div>
<div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160; </div>
<div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga9a77f84e1aa7d25d036b14d7d0cd8b61">mixPauli</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> probX, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> probY, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> probZ);</div>
<div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160; </div>
<div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga97d563fa8f4bc51f720bbb653f5480b3">mixDensityMatrix</a>(<a class="code" href="structQureg.html">Qureg</a> combineQureg, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> prob, <a class="code" href="structQureg.html">Qureg</a> otherQureg);</div>
<div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160; </div>
<div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga683779343fb2c6055f6b1d01079c2ede">calcPurity</a>(<a class="code" href="structQureg.html">Qureg</a> qureg);</div>
<div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160; </div>
<div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#gaa266ed6c8ae5d0d0f49e1ac50819cffc">calcFidelity</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structQureg.html">Qureg</a> pureState);</div>
<div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160; </div>
<div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga820fd139c035136819e371308c206e36">swapGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> qubit1, <span class="keywordtype">int</span> qubit2);</div>
<div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160; </div>
<div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160; </div>
<div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga75d5e65f87c68403602a669b9c6d52b0">sqrtSwapGate</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> qb1, <span class="keywordtype">int</span> qb2);</div>
<div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160; </div>
<div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga41b946a82982c3fa3dc2a7395665bc90">multiStateControlledUnitary</a>(</div>
<div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160;    <a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keywordtype">int</span>* controlState, <span class="keywordtype">int</span> numControlQubits, </div>
<div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160;    <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u</div>
<div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;);</div>
<div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160; </div>
<div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga3250d0d95b5d755cad542a6a2372b894">multiRotateZ</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* qubits, <span class="keywordtype">int</span> numQubits, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160; </div>
<div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga34aa4865c92f9aa5d898c91286c9eca5">multiRotatePauli</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targetQubits, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* targetPaulis, <span class="keywordtype">int</span> numTargets, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> angle);</div>
<div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160; </div>
<div class="line"><a name="l02765"></a><span class="lineno"> 2765</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga15cfad3f3d26339128e3be32ae7deacd">calcExpecPauliProd</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targetQubits, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* pauliCodes, <span class="keywordtype">int</span> numTargets, <a class="code" href="structQureg.html">Qureg</a> workspace);</div>
<div class="line"><a name="l02766"></a><span class="lineno"> 2766</span>&#160; </div>
<div class="line"><a name="l02815"></a><span class="lineno"> 2815</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga50ee589fd5ceab52fdd70d0082352b41">calcExpecPauliSum</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* allPauliCodes, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* termCoeffs, <span class="keywordtype">int</span> numSumTerms, <a class="code" href="structQureg.html">Qureg</a> workspace);</div>
<div class="line"><a name="l02816"></a><span class="lineno"> 2816</span>&#160; </div>
<div class="line"><a name="l02850"></a><span class="lineno"> 2850</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga5544d2833a69941b8820797b79daf79f">calcExpecPauliHamil</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="code" href="structQureg.html">Qureg</a> workspace);</div>
<div class="line"><a name="l02851"></a><span class="lineno"> 2851</span>&#160; </div>
<div class="line"><a name="l02913"></a><span class="lineno"> 2913</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gab525a42d63233f61afeb6be97d89dd36">twoQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit1, <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l02914"></a><span class="lineno"> 2914</span>&#160; </div>
<div class="line"><a name="l02977"></a><span class="lineno"> 2977</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga3d89916b46bc4aaf23e938022e6c89c1">controlledTwoQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> controlQubit, <span class="keywordtype">int</span> targetQubit1, <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l02978"></a><span class="lineno"> 2978</span>&#160; </div>
<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga65c7879947e398690a5428bd43e143e3">multiControlledTwoQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* controlQubits, <span class="keywordtype">int</span> numControlQubits, <span class="keywordtype">int</span> targetQubit1, <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160; </div>
<div class="line"><a name="l03129"></a><span class="lineno"> 3129</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga20bf9b8a71b8a3ee4651e9497e6d1f4f">multiQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l03130"></a><span class="lineno"> 3130</span>&#160; </div>
<div class="line"><a name="l03200"></a><span class="lineno"> 3200</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#gaeb975903209000ebbaf50ef1cc353a79">controlledMultiQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> ctrl, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l03201"></a><span class="lineno"> 3201</span>&#160; </div>
<div class="line"><a name="l03277"></a><span class="lineno"> 3277</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__unitary.html#ga3ad6c477edcdbc845fc1143e860fda08">multiControlledMultiQubitUnitary</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l03278"></a><span class="lineno"> 3278</span>&#160; </div>
<div class="line"><a name="l03312"></a><span class="lineno"> 3312</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#gacb7faa9d8afb0f4270c866424fffbccd">mixKrausMap</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> target, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> *ops, <span class="keywordtype">int</span> numOps);</div>
<div class="line"><a name="l03313"></a><span class="lineno"> 3313</span>&#160; </div>
<div class="line"><a name="l03346"></a><span class="lineno"> 3346</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga2cf7dece0efea4207349f872cdcb7e81">mixTwoQubitKrausMap</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> target1, <span class="keywordtype">int</span> target2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> *ops, <span class="keywordtype">int</span> numOps);</div>
<div class="line"><a name="l03347"></a><span class="lineno"> 3347</span>&#160; </div>
<div class="line"><a name="l03390"></a><span class="lineno"> 3390</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__decoherence.html#ga65b4c0944090fae78a37ba3b94811ace">mixMultiQubitKrausMap</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targets, <span class="keywordtype">int</span> numTargets, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a>* ops, <span class="keywordtype">int</span> numOps);</div>
<div class="line"><a name="l03391"></a><span class="lineno"> 3391</span>&#160; </div>
<div class="line"><a name="l03418"></a><span class="lineno"> 3418</span>&#160;<a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> <a class="code" href="group__calc.html#ga87ddbe5c8281543541ccd99e0dafd387">calcHilbertSchmidtDistance</a>(<a class="code" href="structQureg.html">Qureg</a> a, <a class="code" href="structQureg.html">Qureg</a> b);</div>
<div class="line"><a name="l03419"></a><span class="lineno"> 3419</span>&#160; </div>
<div class="line"><a name="l03443"></a><span class="lineno"> 3443</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__init.html#ga5d0f3f71ea38d3c44597f8c2c2f014d4">setWeightedQureg</a>(<a class="code" href="structComplex.html">Complex</a> fac1, <a class="code" href="structQureg.html">Qureg</a> qureg1, <a class="code" href="structComplex.html">Complex</a> fac2, <a class="code" href="structQureg.html">Qureg</a> qureg2, <a class="code" href="structComplex.html">Complex</a> facOut, <a class="code" href="structQureg.html">Qureg</a> out);</div>
<div class="line"><a name="l03444"></a><span class="lineno"> 3444</span>&#160; </div>
<div class="line"><a name="l03498"></a><span class="lineno"> 3498</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga6fc26cf857db070e12959e59ecfed8a6">applyPauliSum</a>(<a class="code" href="structQureg.html">Qureg</a> inQureg, <span class="keyword">enum</span> <a class="code" href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a>* allPauliCodes, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>* termCoeffs, <span class="keywordtype">int</span> numSumTerms, <a class="code" href="structQureg.html">Qureg</a> outQureg);</div>
<div class="line"><a name="l03499"></a><span class="lineno"> 3499</span>&#160; </div>
<div class="line"><a name="l03536"></a><span class="lineno"> 3536</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga54d4e589468002bdc998200ae45e7312">applyPauliHamil</a>(<a class="code" href="structQureg.html">Qureg</a> inQureg, <a class="code" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="code" href="structQureg.html">Qureg</a> outQureg);</div>
<div class="line"><a name="l03537"></a><span class="lineno"> 3537</span>&#160; </div>
<div class="line"><a name="l03595"></a><span class="lineno"> 3595</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga35b6321c578a8c69470132b5ee95f930">applyTrotterCircuit</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <a class="code" href="structPauliHamil.html">PauliHamil</a> hamil, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> time, <span class="keywordtype">int</span> order, <span class="keywordtype">int</span> reps);</div>
<div class="line"><a name="l03596"></a><span class="lineno"> 3596</span>&#160; </div>
<div class="line"><a name="l03612"></a><span class="lineno"> 3612</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__operator.html#gadfb5c1d99a22ce666fc715a8da2e0950">applyMatrix2</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit, <a class="code" href="structComplexMatrix2.html">ComplexMatrix2</a> u);</div>
<div class="line"><a name="l03613"></a><span class="lineno"> 3613</span>&#160; </div>
<div class="line"><a name="l03660"></a><span class="lineno"> 3660</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga74a955ec4bce606d89317bcfc528387f">applyMatrix4</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span> targetQubit1, <span class="keywordtype">int</span> targetQubit2, <a class="code" href="structComplexMatrix4.html">ComplexMatrix4</a> u);</div>
<div class="line"><a name="l03661"></a><span class="lineno"> 3661</span>&#160; </div>
<div class="line"><a name="l03723"></a><span class="lineno"> 3723</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__operator.html#ga358e7094a98851afa86d27f0147e32a1">applyMatrixN</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l03724"></a><span class="lineno"> 3724</span>&#160; </div>
<div class="line"><a name="l03776"></a><span class="lineno"> 3776</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__operator.html#gab52b6315c5520b7d311b0458785eed8e">applyMultiControlledMatrixN</a>(<a class="code" href="structQureg.html">Qureg</a> qureg, <span class="keywordtype">int</span>* ctrls, <span class="keywordtype">int</span> numCtrls, <span class="keywordtype">int</span>* targs, <span class="keywordtype">int</span> numTargs, <a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> u);</div>
<div class="line"><a name="l03777"></a><span class="lineno"> 3777</span>&#160; </div>
<div class="line"><a name="l03816"></a><span class="lineno"> 3816</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group__debug.html#ga51a64b05d31ef9bcf6a63ce26c0092db">invalidQuESTInputError</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* errMsg, <span class="keyword">const</span> <span class="keywordtype">char</span>* errFunc);</div>
<div class="line"><a name="l03817"></a><span class="lineno"> 3817</span>&#160; </div>
<div class="line"><a name="l03818"></a><span class="lineno"> 3818</span>&#160;<span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l03819"></a><span class="lineno"> 3819</span>&#160; <span class="comment">// hide this function from doxygen</span></div>
<div class="line"><a name="l03821"></a><span class="lineno"> 3821</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l03859"></a><span class="lineno"> 3859</span>&#160;<a class="code" href="structComplexMatrixN.html">ComplexMatrixN</a> <a class="code" href="QuEST__common_8c.html#ad67cb67877c941189b0de2c2e67e2026">bindArraysToStackComplexMatrixN</a>(</div>
<div class="line"><a name="l03860"></a><span class="lineno"> 3860</span>&#160;    <span class="keywordtype">int</span> numQubits, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> re[][1&lt;&lt;numQubits], <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a> im[][1&lt;&lt;numQubits], </div>
<div class="line"><a name="l03861"></a><span class="lineno"> 3861</span>&#160;    <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>** reStorage, <a class="code" href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a>** imStorage);</div>
<div class="line"><a name="l03862"></a><span class="lineno"> 3862</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l03863"></a><span class="lineno"> 3863</span>&#160; </div>
<div class="line"><a name="l03865"></a><span class="lineno"> 3865</span>&#160;<span class="comment">// hide this function from doxygen</span></div>
<div class="line"><a name="l03867"></a><span class="lineno"> 3867</span>&#160;<span class="comment"></span><span class="preprocessor">#define UNPACK_ARR(...) __VA_ARGS__</span></div>
<div class="line"><a name="l03868"></a><span class="lineno"> 3868</span>&#160; </div>
<div class="line"><a name="l03870"></a><span class="lineno"> 3870</span>&#160;<span class="preprocessor">#ifndef __cplusplus</span></div>
<div class="line"><a name="l03871"></a><span class="lineno"> 3871</span>&#160; </div>
<div class="line"><a name="l03910"></a><span class="lineno"><a class="line" href="group__type.html#ga927beeee2ba3b110f33ebb440c154ae2"> 3910</a></span>&#160;<span class="preprocessor">#define getStaticComplexMatrixN(numQubits, re, im) \</span></div>
<div class="line"><a name="l03911"></a><span class="lineno"> 3911</span>&#160;<span class="preprocessor">    bindArraysToStackComplexMatrixN( \</span></div>
<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;<span class="preprocessor">        numQubits, \</span></div>
<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160;<span class="preprocessor">        (qreal[1&lt;&lt;numQubits][1&lt;&lt;numQubits]) UNPACK_ARR re, \</span></div>
<div class="line"><a name="l03914"></a><span class="lineno"> 3914</span>&#160;<span class="preprocessor">        (qreal[1&lt;&lt;numQubits][1&lt;&lt;numQubits]) UNPACK_ARR im, \</span></div>
<div class="line"><a name="l03915"></a><span class="lineno"> 3915</span>&#160;<span class="preprocessor">        (double*[1&lt;&lt;numQubits]) {NULL}, (double*[1&lt;&lt;numQubits]) {NULL} \</span></div>
<div class="line"><a name="l03916"></a><span class="lineno"> 3916</span>&#160;<span class="preprocessor">    )</span></div>
<div class="line"><a name="l03917"></a><span class="lineno"> 3917</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l03918"></a><span class="lineno"> 3918</span>&#160; </div>
<div class="line"><a name="l03919"></a><span class="lineno"> 3919</span>&#160; </div>
<div class="line"><a name="l03920"></a><span class="lineno"> 3920</span>&#160;<span class="comment">// end prevention of C++ name mangling</span></div>
<div class="line"><a name="l03921"></a><span class="lineno"> 3921</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
<div class="line"><a name="l03922"></a><span class="lineno"> 3922</span>&#160;}</div>
<div class="line"><a name="l03923"></a><span class="lineno"> 3923</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l03924"></a><span class="lineno"> 3924</span>&#160; </div>
<div class="line"><a name="l03925"></a><span class="lineno"> 3925</span>&#160;<span class="preprocessor">#endif // QUEST_H</span></div>
<div class="line"><a name="l03926"></a><span class="lineno"> 3926</span>&#160; </div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="agroup__unitary_html_ga7eb969c1dd6c949aecf716d2fba71120"><div class="ttname"><a href="group__unitary.html#ga7eb969c1dd6c949aecf716d2fba71120">controlledRotateZ</a></div><div class="ttdeci">void controlledRotateZ(Qureg qureg, int controlQubit, int targetQubit, qreal angle)</div><div class="ttdoc">Applies a controlled rotation by a given angle around the Z-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00245">QuEST.c:245</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gacc2667ac87482a7afdcb711b74bf732e"><div class="ttname"><a href="group__decoherence.html#gacc2667ac87482a7afdcb711b74bf732e">mixDephasing</a></div><div class="ttdeci">void mixDephasing(Qureg qureg, int targetQubit, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce single-qubit dephasing noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01001">QuEST.c:1001</a></div></div>
<div class="ttc" id="agroup__calc_html_ga4a14d22379d399760b0cfc5c8053589b"><div class="ttname"><a href="group__calc.html#ga4a14d22379d399760b0cfc5c8053589b">getProbAmp</a></div><div class="ttdeci">qreal getProbAmp(Qureg qureg, long long int index)</div><div class="ttdoc">Get the probability of a state-vector at an index in the full state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00692">QuEST.c:692</a></div></div>
<div class="ttc" id="agroup__init_html_gada7230491a50cd409f8b00f5ee1db953"><div class="ttname"><a href="group__init.html#gada7230491a50cd409f8b00f5ee1db953">initBlankState</a></div><div class="ttdeci">void initBlankState(Qureg qureg)</div><div class="ttdoc">Initialises a qureg to have all-zero-amplitudes.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00119">QuEST.c:119</a></div></div>
<div class="ttc" id="astructVector_html"><div class="ttname"><a href="structVector.html">Vector</a></div><div class="ttdoc">Represents a 3-vector of real numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00148">QuEST.h:148</a></div></div>
<div class="ttc" id="agroup__type_html_gaeff624226629d7063a8a776958a4f991"><div class="ttname"><a href="group__type.html#gaeff624226629d7063a8a776958a4f991">destroyQuESTEnv</a></div><div class="ttdeci">void destroyQuESTEnv(QuESTEnv env)</div><div class="ttdoc">Destroy the QuEST environment.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00172">QuEST_cpu_distributed.c:172</a></div></div>
<div class="ttc" id="agroup__type_html_ga1c703cf89629e4e9c7023cd402d67028"><div class="ttname"><a href="group__type.html#ga1c703cf89629e4e9c7023cd402d67028">pauliOpType</a></div><div class="ttdeci">pauliOpType</div><div class="ttdoc">Codes for specifying Pauli operators.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="agroup__operator_html_gab52b6315c5520b7d311b0458785eed8e"><div class="ttname"><a href="group__operator.html#gab52b6315c5520b7d311b0458785eed8e">applyMultiControlledMatrixN</a></div><div class="ttdeci">void applyMultiControlledMatrixN(Qureg qureg, int *ctrls, int numCtrls, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general N-by-N matrix, which may be non-unitary, with additional controlled qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00874">QuEST.c:874</a></div></div>
<div class="ttc" id="agroup__unitary_html_gab525a42d63233f61afeb6be97d89dd36"><div class="ttname"><a href="group__unitary.html#gab525a42d63233f61afeb6be97d89dd36">twoQubitUnitary</a></div><div class="ttdeci">void twoQubitUnitary(Qureg qureg, int targetQubit1, int targetQubit2, ComplexMatrix4 u)</div><div class="ttdoc">Apply a general two-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00257">QuEST.c:257</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga13f904b417f647c70d163770e65906fc"><div class="ttname"><a href="group__unitary.html#ga13f904b417f647c70d163770e65906fc">controlledRotateX</a></div><div class="ttdeci">void controlledRotateX(Qureg qureg, int controlQubit, int targetQubit, qreal angle)</div><div class="ttdoc">Applies a controlled rotation by a given angle around the X-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00221">QuEST.c:221</a></div></div>
<div class="ttc" id="agroup__debug_html_ga97d96af7c7ea7b31e32cbe3b25377e09"><div class="ttname"><a href="group__debug.html#ga97d96af7c7ea7b31e32cbe3b25377e09">reportQuregParams</a></div><div class="ttdeci">void reportQuregParams(Qureg qureg)</div><div class="ttdoc">Report metainformation about a set of qubits: number of qubits, number of probability amplitudes.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__common_8c_source.html#l00234">QuEST_common.c:234</a></div></div>
<div class="ttc" id="agroup__debug_html_ga924ef2dbda6b733b4041270077c76ece"><div class="ttname"><a href="group__debug.html#ga924ef2dbda6b733b4041270077c76ece">copyStateFromGPU</a></div><div class="ttdeci">void copyStateFromGPU(Qureg qureg)</div><div class="ttdoc">In GPU mode, this copies the state-vector (or density matrix) from GPU memory (qureg....</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu_8c_source.html#l00039">QuEST_cpu.c:39</a></div></div>
<div class="ttc" id="agroup__type_html_gadbe6701dda1d49168f2f23253e370a7a"><div class="ttname"><a href="group__type.html#gadbe6701dda1d49168f2f23253e370a7a">initPauliHamil</a></div><div class="ttdeci">void initPauliHamil(PauliHamil hamil, qreal *coeffs, enum pauliOpType *codes)</div><div class="ttdoc">Initialise a PauliHamil instance with the given term coefficients and Pauli codes (one for every qubi...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01253">QuEST.c:1253</a></div></div>
<div class="ttc" id="astructComplexMatrix4_html_aeadc9893e1b16cdd585dac523e73926c"><div class="ttname"><a href="structComplexMatrix4.html#aeadc9893e1b16cdd585dac523e73926c">ComplexMatrix4::real</a></div><div class="ttdeci">qreal real[4][4]</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00127">QuEST.h:127</a></div></div>
<div class="ttc" id="agroup__debug_html_ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77"><div class="ttname"><a href="group__debug.html#ga8d31fe2d1ad4d01e2a1f5f6b8bc15b77">syncQuESTEnv</a></div><div class="ttdeci">void syncQuESTEnv(QuESTEnv env)</div><div class="ttdoc">Guarantees that all code up to the given point has been executed on all nodes (if running in distribu...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00162">QuEST_cpu_distributed.c:162</a></div></div>
<div class="ttc" id="agroup__init_html_ga9a348df3e1df623c3d4c4f12c3ee3fe8"><div class="ttname"><a href="group__init.html#ga9a348df3e1df623c3d4c4f12c3ee3fe8">initPureState</a></div><div class="ttdeci">void initPureState(Qureg qureg, Qureg pure)</div><div class="ttdoc">Initialise a set of  qubits, which can be a state vector or density matrix, to a given pure state.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00145">QuEST.c:145</a></div></div>
<div class="ttc" id="agroup__type_html_gga1c703cf89629e4e9c7023cd402d67028a085c85cff6ba79c52d8b1e61c42ddddf"><div class="ttname"><a href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a085c85cff6ba79c52d8b1e61c42ddddf">PAULI_Z</a></div><div class="ttdeci">@ PAULI_Z</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga4c708f066b244801e10f538b48b90145"><div class="ttname"><a href="group__unitary.html#ga4c708f066b244801e10f538b48b90145">rotateAroundAxis</a></div><div class="ttdeci">void rotateAroundAxis(Qureg qureg, int rotQubit, qreal angle, Vector axis)</div><div class="ttdoc">Rotate a single qubit by a given angle around a given Vector on the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00575">QuEST.c:575</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gae2ea9255b8b11a4a382231e5604dc4e3"><div class="ttname"><a href="group__decoherence.html#gae2ea9255b8b11a4a382231e5604dc4e3">mixDepolarising</a></div><div class="ttdeci">void mixDepolarising(Qureg qureg, int targetQubit, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce single-qubit homogeneous depolarising noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01023">QuEST.c:1023</a></div></div>
<div class="ttc" id="astructQuESTEnv_html_aa648bb336cf8598467cb62db00b9cee8"><div class="ttname"><a href="structQuESTEnv.html#aa648bb336cf8598467cb62db00b9cee8">QuESTEnv::rank</a></div><div class="ttdeci">int rank</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00244">QuEST.h:244</a></div></div>
<div class="ttc" id="agroup__calc_html_gab082910d33473ec29e1d5852943de468"><div class="ttname"><a href="group__calc.html#gab082910d33473ec29e1d5852943de468">calcTotalProb</a></div><div class="ttdeci">qreal calcTotalProb(Qureg qureg)</div><div class="ttdoc">A debugging function which calculates the probability of the qubits in qureg being in any state,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00903">QuEST.c:903</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gaea8509011985522bae857bd3b13c34ed"><div class="ttname"><a href="group__decoherence.html#gaea8509011985522bae857bd3b13c34ed">mixDamping</a></div><div class="ttdeci">void mixDamping(Qureg qureg, int targetQubit, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce single-qubit amplitude damping (decay to 0 state).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01034">QuEST.c:1034</a></div></div>
<div class="ttc" id="agroup__type_html_ga9df2f3d86be4a6e9aad481665e5e6753"><div class="ttname"><a href="group__type.html#ga9df2f3d86be4a6e9aad481665e5e6753">destroyComplexMatrixN</a></div><div class="ttdeci">void destroyComplexMatrixN(ComplexMatrixN matr)</div><div class="ttdoc">Destroy a ComplexMatrixN instance created with createComplexMatrixN()</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01120">QuEST.c:1120</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_ada3bffa8e414f883e415dd74e46cd879"><div class="ttname"><a href="structDiagonalOp.html#ada3bffa8e414f883e415dd74e46cd879">DiagonalOp::numChunks</a></div><div class="ttdeci">int numChunks</div><div class="ttdoc">The number of nodes between which the elements of this operator are split.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00185">QuEST.h:185</a></div></div>
<div class="ttc" id="agroup__debug_html_gab27234d9ccf440bb5e5d834e8f7e3938"><div class="ttname"><a href="group__debug.html#gab27234d9ccf440bb5e5d834e8f7e3938">reportPauliHamil</a></div><div class="ttdeci">void reportPauliHamil(PauliHamil hamil)</div><div class="ttdoc">Print the PauliHamil to screen.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01328">QuEST.c:1328</a></div></div>
<div class="ttc" id="astructQureg_html_aba97773694870ef35e378c036f486bb7"><div class="ttname"><a href="structQureg.html#aba97773694870ef35e378c036f486bb7">Qureg::pairStateVec</a></div><div class="ttdeci">ComplexArray pairStateVec</div><div class="ttdoc">Temporary storage for a chunk of the state vector received from another process in the MPI version.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00224">QuEST.h:224</a></div></div>
<div class="ttc" id="agroup__type_html_gga1c703cf89629e4e9c7023cd402d67028a63800f45b01ccc2608f754aee850bf4a"><div class="ttname"><a href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a63800f45b01ccc2608f754aee850bf4a">PAULI_I</a></div><div class="ttdeci">@ PAULI_I</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="agroup__calc_html_gadca286c4ad5cde6124d4e80a7ab95a68"><div class="ttname"><a href="group__calc.html#gadca286c4ad5cde6124d4e80a7ab95a68">getDensityAmp</a></div><div class="ttdeci">Complex getDensityAmp(Qureg qureg, long long int row, long long int col)</div><div class="ttdoc">Get an amplitude from a density matrix at a given row and column.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00709">QuEST.c:709</a></div></div>
<div class="ttc" id="agroup__debug_html_ga2d955c6e51067371eee69795532a2d62"><div class="ttname"><a href="group__debug.html#ga2d955c6e51067371eee69795532a2d62">getEnvironmentString</a></div><div class="ttdeci">void getEnvironmentString(QuESTEnv env, Qureg qureg, char str[200])</div><div class="ttdoc">Sets str to a string containing the number of qubits in qureg, and the hardware facilities used (e....</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__gpu_8cu_source.html#l00447">QuEST_gpu.cu:447</a></div></div>
<div class="ttc" id="agroup__type_html_ga815103261fb22ea9690e1427571df00e"><div class="ttname"><a href="group__type.html#ga815103261fb22ea9690e1427571df00e">createComplexMatrixN</a></div><div class="ttdeci">ComplexMatrixN createComplexMatrixN(int numQubits)</div><div class="ttdoc">Create (dynamically) a square complex matrix which can be passed to the multi-qubit general unitary f...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01099">QuEST.c:1099</a></div></div>
<div class="ttc" id="agroup__calc_html_gad575782de461d9ab0975b38cc7850f1a"><div class="ttname"><a href="group__calc.html#gad575782de461d9ab0975b38cc7850f1a">getImagAmp</a></div><div class="ttdeci">qreal getImagAmp(Qureg qureg, long long int index)</div><div class="ttdoc">Get the imaginary component of the complex probability amplitude at an index in the state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00685">QuEST.c:685</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga0c84c429cb1d7e2596706c1804dd9cba"><div class="ttname"><a href="group__unitary.html#ga0c84c429cb1d7e2596706c1804dd9cba">controlledRotateAroundAxis</a></div><div class="ttdeci">void controlledRotateAroundAxis(Qureg qureg, int controlQubit, int targetQubit, qreal angle, Vector axis)</div><div class="ttdoc">Applies a controlled rotation by a given angle around a given vector on the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00588">QuEST.c:588</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gacb7faa9d8afb0f4270c866424fffbccd"><div class="ttname"><a href="group__decoherence.html#gacb7faa9d8afb0f4270c866424fffbccd">mixKrausMap</a></div><div class="ttdeci">void mixKrausMap(Qureg qureg, int target, ComplexMatrix2 *ops, int numOps)</div><div class="ttdoc">Apply a general single-qubit Kraus map to a density matrix, as specified by at most four Kraus operat...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01065">QuEST.c:1065</a></div></div>
<div class="ttc" id="agroup__type_html_gab75d5cdc622d2778bad24e3a8130aab9"><div class="ttname"><a href="group__type.html#gab75d5cdc622d2778bad24e3a8130aab9">syncDiagonalOp</a></div><div class="ttdeci">void syncDiagonalOp(DiagonalOp op)</div><div class="ttdoc">Copy the elements in DiagonalOp op.real and op.imag to the persisent GPU memory.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01280">QuEST.c:1280</a></div></div>
<div class="ttc" id="agroup__type_html_ga2c59f45fab56708f687b4104ee99bcd1"><div class="ttname"><a href="group__type.html#ga2c59f45fab56708f687b4104ee99bcd1">destroyDiagonalOp</a></div><div class="ttdeci">void destroyDiagonalOp(DiagonalOp op, QuESTEnv env)</div><div class="ttdoc">Destroys a DiagonalOp created with createDiagonalOp(), freeing its memory.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01273">QuEST.c:1273</a></div></div>
<div class="ttc" id="astructVector_html_ab33976d8fda2e44b770f71269d698a25"><div class="ttname"><a href="structVector.html#ab33976d8fda2e44b770f71269d698a25">Vector::z</a></div><div class="ttdeci">qreal z</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00150">QuEST.h:150</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga65c7879947e398690a5428bd43e143e3"><div class="ttname"><a href="group__unitary.html#ga65c7879947e398690a5428bd43e143e3">multiControlledTwoQubitUnitary</a></div><div class="ttdeci">void multiControlledTwoQubitUnitary(Qureg qureg, int *controlQubits, int numControlQubits, int targetQubit1, int targetQubit2, ComplexMatrix4 u)</div><div class="ttdoc">Apply a general multi-controlled two-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00283">QuEST.c:283</a></div></div>
<div class="ttc" id="agroup__normgate_html_ga34457f7f62ccd75fb7d3fe67cd2f815a"><div class="ttname"><a href="group__normgate.html#ga34457f7f62ccd75fb7d3fe67cd2f815a">collapseToOutcome</a></div><div class="ttdeci">qreal collapseToOutcome(Qureg qureg, int measureQubit, int outcome)</div><div class="ttdoc">Updates qureg to be consistent with measuring measureQubit in the given outcome (0 or 1),...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00726">QuEST.c:726</a></div></div>
<div class="ttc" id="astructQureg_html_aa3deb7163aab90a61e755a1f200f5413"><div class="ttname"><a href="structQureg.html#aa3deb7163aab90a61e755a1f200f5413">Qureg::numChunks</a></div><div class="ttdeci">int numChunks</div><div class="ttdoc">Number of chunks the state vector is broken up into – the number of MPI processes used.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00219">QuEST.h:219</a></div></div>
<div class="ttc" id="agroup__calc_html_ga683779343fb2c6055f6b1d01079c2ede"><div class="ttname"><a href="group__calc.html#ga683779343fb2c6055f6b1d01079c2ede">calcPurity</a></div><div class="ttdeci">qreal calcPurity(Qureg qureg)</div><div class="ttdoc">Calculates the purity of a density matrix, by the trace of the density matrix squared.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00936">QuEST.c:936</a></div></div>
<div class="ttc" id="agroup__calc_html_ga2a7946e6fa4f44c9ae0c6c9f683229ad"><div class="ttname"><a href="group__calc.html#ga2a7946e6fa4f44c9ae0c6c9f683229ad">calcProbOfOutcome</a></div><div class="ttdeci">qreal calcProbOfOutcome(Qureg qureg, int measureQubit, int outcome)</div><div class="ttdoc">Gives the probability of a specified qubit being measured in the given outcome (0 or 1).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00926">QuEST.c:926</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_aebb8af156861c4bc0dd4f35f6982570a"><div class="ttname"><a href="structDiagonalOp.html#aebb8af156861c4bc0dd4f35f6982570a">DiagonalOp::deviceOperator</a></div><div class="ttdeci">ComplexArray deviceOperator</div><div class="ttdoc">A copy of the elements stored persistently on the GPU.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00193">QuEST.h:193</a></div></div>
<div class="ttc" id="agroup__qasm_html_gab3a410abab3e8beb394bd3bbfae8977c"><div class="ttname"><a href="group__qasm.html#gab3a410abab3e8beb394bd3bbfae8977c">clearRecordedQASM</a></div><div class="ttdeci">void clearRecordedQASM(Qureg qureg)</div><div class="ttdoc">Clear all QASM so far recorded.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00095">QuEST.c:95</a></div></div>
<div class="ttc" id="agroup__normgate_html_ga2a3794103125f1e3cfa103f8b1963656"><div class="ttname"><a href="group__normgate.html#ga2a3794103125f1e3cfa103f8b1963656">measure</a></div><div class="ttdeci">int measure(Qureg qureg, int measureQubit)</div><div class="ttdoc">Measures a single qubit, collapsing it randomly to 0 or 1.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00758">QuEST.c:758</a></div></div>
<div class="ttc" id="agroup__calc_html_gaa266ed6c8ae5d0d0f49e1ac50819cffc"><div class="ttname"><a href="group__calc.html#gaa266ed6c8ae5d0d0f49e1ac50819cffc">calcFidelity</a></div><div class="ttdeci">qreal calcFidelity(Qureg qureg, Qureg pureState)</div><div class="ttdoc">Calculates the fidelity of qureg (a statevector or density matrix) against a reference pure state (ne...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00942">QuEST.c:942</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga78b814256f851cac70fdf3cbf9cfc206"><div class="ttname"><a href="group__unitary.html#ga78b814256f851cac70fdf3cbf9cfc206">unitary</a></div><div class="ttdeci">void unitary(Qureg qureg, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general single-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00349">QuEST.c:349</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_aa91713a22c95a383bba55e56c4a4e37a"><div class="ttname"><a href="structDiagonalOp.html#aa91713a22c95a383bba55e56c4a4e37a">DiagonalOp::chunkId</a></div><div class="ttdeci">int chunkId</div><div class="ttdoc">The position of the chunk of the operator held by this process in the full operator.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00187">QuEST.h:187</a></div></div>
<div class="ttc" id="astructQureg_html_ac181d7b3b94fff179dc74d7935ecd9e1"><div class="ttname"><a href="structQureg.html#ac181d7b3b94fff179dc74d7935ecd9e1">Qureg::deviceStateVec</a></div><div class="ttdeci">ComplexArray deviceStateVec</div><div class="ttdoc">Storage for wavefunction amplitudes in the GPU version.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00227">QuEST.h:227</a></div></div>
<div class="ttc" id="agroup__debug_html_ga95012dad46509b4b461974c34cfd7b3d"><div class="ttname"><a href="group__debug.html#ga95012dad46509b4b461974c34cfd7b3d">seedQuEST</a></div><div class="ttdeci">void seedQuEST(unsigned long int *seedArray, int numSeeds)</div><div class="ttdoc">Seed the Mersenne Twister used for random number generation in the QuEST environment with a user defi...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__common_8c_source.html#l00209">QuEST_common.c:209</a></div></div>
<div class="ttc" id="agroup__decoherence_html_gacfc45a8fc86ee18f60866bbd0c874ed0"><div class="ttname"><a href="group__decoherence.html#gacfc45a8fc86ee18f60866bbd0c874ed0">mixTwoQubitDepolarising</a></div><div class="ttdeci">void mixTwoQubitDepolarising(Qureg qureg, int qubit1, int qubit2, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce two-qubit homogeneous depolarising noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01042">QuEST.c:1042</a></div></div>
<div class="ttc" id="agroup__calc_html_ga82f17e96a4cb7612fb9c6ef856df3810"><div class="ttname"><a href="group__calc.html#ga82f17e96a4cb7612fb9c6ef856df3810">calcExpecDiagonalOp</a></div><div class="ttdeci">Complex calcExpecDiagonalOp(Qureg qureg, DiagonalOp op)</div><div class="ttdoc">Computes the expected value of the diagonal operator op for state qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00979">QuEST.c:979</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga655ffcd4def2e127341c9488f5ca8455"><div class="ttname"><a href="group__unitary.html#ga655ffcd4def2e127341c9488f5ca8455">sGate</a></div><div class="ttdeci">void sGate(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit S gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00466">QuEST.c:466</a></div></div>
<div class="ttc" id="agroup__init_html_ga4534403b721977b669bff7bf4e37f0fb"><div class="ttname"><a href="group__init.html#ga4534403b721977b669bff7bf4e37f0fb">cloneQureg</a></div><div class="ttdeci">void cloneQureg(Qureg targetQureg, Qureg copyQureg)</div><div class="ttdoc">Set targetQureg to be a clone of copyQureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00165">QuEST.c:165</a></div></div>
<div class="ttc" id="astructComplexMatrix4_html"><div class="ttname"><a href="structComplexMatrix4.html">ComplexMatrix4</a></div><div class="ttdoc">Represents a 4x4 matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00125">QuEST.h:125</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga34312ff52cc28bcab3cbd2ff338fd081"><div class="ttname"><a href="group__unitary.html#ga34312ff52cc28bcab3cbd2ff338fd081">rotateY</a></div><div class="ttdeci">void rotateY(Qureg qureg, int rotQubit, qreal angle)</div><div class="ttdoc">Rotate a single qubit by a given angle around the Y-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00199">QuEST.c:199</a></div></div>
<div class="ttc" id="agroup__operator_html_ga54d4e589468002bdc998200ae45e7312"><div class="ttname"><a href="group__operator.html#ga54d4e589468002bdc998200ae45e7312">applyPauliHamil</a></div><div class="ttdeci">void applyPauliHamil(Qureg inQureg, PauliHamil hamil, Qureg outQureg)</div><div class="ttdoc">Modifies outQureg to be the result of applying PauliHamil (a Hermitian but not necessarily unitary op...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00819">QuEST.c:819</a></div></div>
<div class="ttc" id="astructQuESTEnv_html"><div class="ttname"><a href="structQuESTEnv.html">QuESTEnv</a></div><div class="ttdoc">Information about the environment the program is running in.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00242">QuEST.h:242</a></div></div>
<div class="ttc" id="agroup__type_html_gaa77376c5e3518186eb085f37826d6008"><div class="ttname"><a href="group__type.html#gaa77376c5e3518186eb085f37826d6008">createPauliHamilFromFile</a></div><div class="ttdeci">PauliHamil createPauliHamilFromFile(char *fn)</div><div class="ttdoc">Create a PauliHamil instance, a real-weighted sum of products of Pauli operators, populated with the ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01169">QuEST.c:1169</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga0832e39058d913ad47af44e97a854446"><div class="ttname"><a href="group__unitary.html#ga0832e39058d913ad47af44e97a854446">multiControlledPhaseShift</a></div><div class="ttdeci">void multiControlledPhaseShift(Qureg qureg, int *controlQubits, int numControlQubits, qreal angle)</div><div class="ttdoc">Introduce a phase factor  on state  of the passed qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00511">QuEST.c:511</a></div></div>
<div class="ttc" id="agroup__type_html_gafabb15a6c1cf49f8ecb67e1f35c77c1e"><div class="ttname"><a href="group__type.html#gafabb15a6c1cf49f8ecb67e1f35c77c1e">setDiagonalOpElems</a></div><div class="ttdeci">void setDiagonalOpElems(DiagonalOp op, long long int startInd, qreal *real, qreal *imag, long long int numElems)</div><div class="ttdoc">Modifies a subset (starting at index startInd) of the elements in DiagonalOp op with the given elemen...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01292">QuEST.c:1292</a></div></div>
<div class="ttc" id="aQuEST__common_8c_html_ad67cb67877c941189b0de2c2e67e2026"><div class="ttname"><a href="QuEST__common_8c.html#ad67cb67877c941189b0de2c2e67e2026">bindArraysToStackComplexMatrixN</a></div><div class="ttdeci">ComplexMatrixN bindArraysToStackComplexMatrixN(int numQubits, qreal re[][1&lt;&lt; numQubits], qreal im[][1&lt;&lt; numQubits], qreal **reStorage, qreal **imStorage)</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__common_8c_source.html#l00607">QuEST_common.c:607</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html"><div class="ttname"><a href="structComplexMatrixN.html">ComplexMatrixN</a></div><div class="ttdoc">Represents a general 2^N by 2^N matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00136">QuEST.h:136</a></div></div>
<div class="ttc" id="agroup__type_html_ga7740e349b4f8bae6451547680f0ce2d6"><div class="ttname"><a href="group__type.html#ga7740e349b4f8bae6451547680f0ce2d6">qreal</a></div><div class="ttdeci">#define qreal</div></div>
<div class="ttc" id="agroup__unitary_html_ga34aa4865c92f9aa5d898c91286c9eca5"><div class="ttname"><a href="group__unitary.html#ga34aa4865c92f9aa5d898c91286c9eca5">multiRotatePauli</a></div><div class="ttdeci">void multiRotatePauli(Qureg qureg, int *targetQubits, enum pauliOpType *targetPaulis, int numTargets, qreal angle)</div><div class="ttdoc">Apply a multi-qubit multi-Pauli rotation on a selected number of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00642">QuEST.c:642</a></div></div>
<div class="ttc" id="agroup__qasm_html_gabdaa339967f0955176a4967f01364182"><div class="ttname"><a href="group__qasm.html#gabdaa339967f0955176a4967f01364182">stopRecordingQASM</a></div><div class="ttdeci">void stopRecordingQASM(Qureg qureg)</div><div class="ttdoc">Disable QASM recording.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00091">QuEST.c:91</a></div></div>
<div class="ttc" id="agroup__init_html_gabc0c64f8adf307d2a44184dc0f8ca66e"><div class="ttname"><a href="group__init.html#gabc0c64f8adf307d2a44184dc0f8ca66e">setAmps</a></div><div class="ttdeci">void setAmps(Qureg qureg, long long int startInd, qreal *reals, qreal *imags, long long int numAmps)</div><div class="ttdoc">Overwrites a subset of the amplitudes in qureg, with those passed in reals and imags.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00781">QuEST.c:781</a></div></div>
<div class="ttc" id="agroup__unitary_html_gad76781842af56821ed4e223bd776f057"><div class="ttname"><a href="group__unitary.html#gad76781842af56821ed4e223bd776f057">multiControlledPhaseFlip</a></div><div class="ttdeci">void multiControlledPhaseFlip(Qureg qureg, int *controlQubits, int numControlQubits)</div><div class="ttdoc">Apply the multiple-qubit controlled phase flip gate, also known as the multiple-qubit controlled paul...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00561">QuEST.c:561</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga20bf9b8a71b8a3ee4651e9497e6d1f4f"><div class="ttname"><a href="group__unitary.html#ga20bf9b8a71b8a3ee4651e9497e6d1f4f">multiQubitUnitary</a></div><div class="ttdeci">void multiQubitUnitary(Qureg qureg, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general multi-qubit unitary (including a global phase factor) with any number of target qubit...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00297">QuEST.c:297</a></div></div>
<div class="ttc" id="agroup__type_html_gga1c703cf89629e4e9c7023cd402d67028a7abac7bb5b71e17382014c443244ad5c"><div class="ttname"><a href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a7abac7bb5b71e17382014c443244ad5c">PAULI_X</a></div><div class="ttdeci">@ PAULI_X</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="agroup__calc_html_ga30d6f8b7c766c9c9914b2c61a2fc0def"><div class="ttname"><a href="group__calc.html#ga30d6f8b7c766c9c9914b2c61a2fc0def">getAmp</a></div><div class="ttdeci">Complex getAmp(Qureg qureg, long long int index)</div><div class="ttdoc">Get the complex amplitude at a given index in the state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00699">QuEST.c:699</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga5e5fdaa7d3dd449b3e2c5d4a01bd015a"><div class="ttname"><a href="group__unitary.html#ga5e5fdaa7d3dd449b3e2c5d4a01bd015a">controlledPauliY</a></div><div class="ttdeci">void controlledPauliY(Qureg qureg, int controlQubit, int targetQubit)</div><div class="ttdoc">Apply the controlled pauliY (single control, single target) gate, also known as the c-Y and c-sigma-Y...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00537">QuEST.c:537</a></div></div>
<div class="ttc" id="agroup__debug_html_gacd5f0ee488157837a8483c1515817f98"><div class="ttname"><a href="group__debug.html#gacd5f0ee488157837a8483c1515817f98">reportState</a></div><div class="ttdeci">void reportState(Qureg qureg)</div><div class="ttdoc">Print the current state vector of probability amplitudes for a set of qubits to file.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__common_8c_source.html#l00216">QuEST_common.c:216</a></div></div>
<div class="ttc" id="agroup__type_html_ga429f1b90b3ef06c786dec8c7f0eda4ce"><div class="ttname"><a href="group__type.html#ga429f1b90b3ef06c786dec8c7f0eda4ce">initComplexMatrixN</a></div><div class="ttdeci">void initComplexMatrixN(ComplexMatrixN m, qreal real[][1&lt;&lt; m.numQubits], qreal imag[][1&lt;&lt; m.numQubits])</div><div class="ttdoc">Initialises a ComplexMatrixN instance to have the passed real and imag values.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01136">QuEST.c:1136</a></div></div>
<div class="ttc" id="agroup__normgate_html_gae192ac0759e46c7b20a7182020155240"><div class="ttname"><a href="group__normgate.html#gae192ac0759e46c7b20a7182020155240">measureWithStats</a></div><div class="ttdeci">int measureWithStats(Qureg qureg, int measureQubit, qreal *outcomeProb)</div><div class="ttdoc">Measures a single qubit, collapsing it randomly to 0 or 1, and additionally gives the probability of ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00745">QuEST.c:745</a></div></div>
<div class="ttc" id="astructQureg_html_a0a86e8a50ea8c998b4a0a6640c5a1218"><div class="ttname"><a href="structQureg.html#a0a86e8a50ea8c998b4a0a6640c5a1218">Qureg::numQubitsInStateVec</a></div><div class="ttdeci">int numQubitsInStateVec</div><div class="ttdoc">Number of qubits in the state-vector - this is double the number represented for mixed states.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00210">QuEST.h:210</a></div></div>
<div class="ttc" id="agroup__calc_html_ga5544d2833a69941b8820797b79daf79f"><div class="ttname"><a href="group__calc.html#ga5544d2833a69941b8820797b79daf79f">calcExpecPauliHamil</a></div><div class="ttdeci">qreal calcExpecPauliHamil(Qureg qureg, PauliHamil hamil, Qureg workspace)</div><div class="ttdoc">Computes the expected value of qureg under Hermitian operator hamil.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00970">QuEST.c:970</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga3ad6c477edcdbc845fc1143e860fda08"><div class="ttname"><a href="group__unitary.html#ga3ad6c477edcdbc845fc1143e860fda08">multiControlledMultiQubitUnitary</a></div><div class="ttdeci">void multiControlledMultiQubitUnitary(Qureg qureg, int *ctrls, int numCtrls, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general multi-controlled multi-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00331">QuEST.c:331</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga8886a3793b21622c48cf3bad6e15082d"><div class="ttname"><a href="group__unitary.html#ga8886a3793b21622c48cf3bad6e15082d">rotateX</a></div><div class="ttdeci">void rotateX(Qureg qureg, int rotQubit, qreal angle)</div><div class="ttdoc">Rotate a single qubit by a given angle around the X-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00188">QuEST.c:188</a></div></div>
<div class="ttc" id="agroup__debug_html_ga51a64b05d31ef9bcf6a63ce26c0092db"><div class="ttname"><a href="group__debug.html#ga51a64b05d31ef9bcf6a63ce26c0092db">invalidQuESTInputError</a></div><div class="ttdeci">void invalidQuESTInputError(const char *errMsg, const char *errFunc)</div><div class="ttdoc">An internal function called when invalid arguments are passed to a QuEST API call,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__validation_8c_source.html#l00176">QuEST_validation.c:176</a></div></div>
<div class="ttc" id="agroup__init_html_ga5d0f3f71ea38d3c44597f8c2c2f014d4"><div class="ttname"><a href="group__init.html#ga5d0f3f71ea38d3c44597f8c2c2f014d4">setWeightedQureg</a></div><div class="ttdeci">void setWeightedQureg(Complex fac1, Qureg qureg1, Complex fac2, Qureg qureg2, Complex facOut, Qureg out)</div><div class="ttdoc">Modifies qureg out to the result of (facOut out + fac1 qureg1 + fac2 qureg2), imposing no constraints...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00797">QuEST.c:797</a></div></div>
<div class="ttc" id="astructQureg_html_ac2929e681d3d95591c18cf168dbbe4f0"><div class="ttname"><a href="structQureg.html#ac2929e681d3d95591c18cf168dbbe4f0">Qureg::chunkId</a></div><div class="ttdeci">int chunkId</div><div class="ttdoc">The position of the chunk of the state vector held by this process in the full state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00217">QuEST.h:217</a></div></div>
<div class="ttc" id="agroup__calc_html_ga87ddbe5c8281543541ccd99e0dafd387"><div class="ttname"><a href="group__calc.html#ga87ddbe5c8281543541ccd99e0dafd387">calcHilbertSchmidtDistance</a></div><div class="ttdeci">qreal calcHilbertSchmidtDistance(Qureg a, Qureg b)</div><div class="ttdoc">Computes the Hilbert Schmidt distance between two density matrices a and b, defined as the Frobenius ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00988">QuEST.c:988</a></div></div>
<div class="ttc" id="astructVector_html_abc3cfc6c8e297b1153a373d84b981e6b"><div class="ttname"><a href="structVector.html#abc3cfc6c8e297b1153a373d84b981e6b">Vector::y</a></div><div class="ttdeci">qreal y</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00150">QuEST.h:150</a></div></div>
<div class="ttc" id="astructComplexMatrix2_html_a3a2b60a9e00ccef054a6de3b9307c1be"><div class="ttname"><a href="structComplexMatrix2.html#a3a2b60a9e00ccef054a6de3b9307c1be">ComplexMatrix2::imag</a></div><div class="ttdeci">qreal imag[2][2]</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00117">QuEST.h:117</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_a85c3f52533efe831bbe40b9a48602388"><div class="ttname"><a href="structDiagonalOp.html#a85c3f52533efe831bbe40b9a48602388">DiagonalOp::imag</a></div><div class="ttdeci">qreal * imag</div><div class="ttdoc">The imaginary values of the 2^numQubits complex elements.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00191">QuEST.h:191</a></div></div>
<div class="ttc" id="astructVector_html_a0d0459a5b731ac5fb3dff2c6134e6e88"><div class="ttname"><a href="structVector.html#a0d0459a5b731ac5fb3dff2c6134e6e88">Vector::x</a></div><div class="ttdeci">qreal x</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00150">QuEST.h:150</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga5d80b490e3910aa737a81bb597cdfcc9"><div class="ttname"><a href="group__unitary.html#ga5d80b490e3910aa737a81bb597cdfcc9">pauliZ</a></div><div class="ttdeci">void pauliZ(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit Pauli-Z (also known as the Z, sigma-Z or phase-flip) gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00455">QuEST.c:455</a></div></div>
<div class="ttc" id="astructQureg_html_ab0ea0358482b62f43fdd781469607d97"><div class="ttname"><a href="structQureg.html#ab0ea0358482b62f43fdd781469607d97">Qureg::numAmpsPerChunk</a></div><div class="ttdeci">long long int numAmpsPerChunk</div><div class="ttdoc">Number of probability amplitudes held in stateVec by this process In the non-MPI version,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00213">QuEST.h:213</a></div></div>
<div class="ttc" id="agroup__operator_html_gad2e953390342cd361cfb4064d47715e6"><div class="ttname"><a href="group__operator.html#gad2e953390342cd361cfb4064d47715e6">applyDiagonalOp</a></div><div class="ttdeci">void applyDiagonalOp(Qureg qureg, DiagonalOp op)</div><div class="ttdoc">Apply a diagonal complex operator, which is possibly non-unitary and non-Hermitian,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00887">QuEST.c:887</a></div></div>
<div class="ttc" id="astructPauliHamil_html_ac1c6c9f6299cf83bbba88123216c3cac"><div class="ttname"><a href="structPauliHamil.html#ac1c6c9f6299cf83bbba88123216c3cac">PauliHamil::termCoeffs</a></div><div class="ttdeci">qreal * termCoeffs</div><div class="ttdoc">The coefficient of each Pauli product. This is a length numSumTerms array.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00164">QuEST.h:164</a></div></div>
<div class="ttc" id="agroup__operator_html_ga74a955ec4bce606d89317bcfc528387f"><div class="ttname"><a href="group__operator.html#ga74a955ec4bce606d89317bcfc528387f">applyMatrix4</a></div><div class="ttdeci">void applyMatrix4(Qureg qureg, int targetQubit1, int targetQubit2, ComplexMatrix4 u)</div><div class="ttdoc">Apply a general 4-by-4 matrix, which may be non-unitary.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00853">QuEST.c:853</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga820fd139c035136819e371308c206e36"><div class="ttname"><a href="group__unitary.html#ga820fd139c035136819e371308c206e36">swapGate</a></div><div class="ttdeci">void swapGate(Qureg qureg, int qubit1, int qubit2)</div><div class="ttdoc">Performs a SWAP gate between qubit1 and qubit2.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00601">QuEST.c:601</a></div></div>
<div class="ttc" id="astructPauliHamil_html_a4b8d38c403553c07ceddcd40c46ce6c8"><div class="ttname"><a href="structPauliHamil.html#a4b8d38c403553c07ceddcd40c46ce6c8">PauliHamil::pauliCodes</a></div><div class="ttdeci">enum pauliOpType * pauliCodes</div><div class="ttdoc">The Pauli operators acting on each qubit, flattened over every operator.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00162">QuEST.h:162</a></div></div>
<div class="ttc" id="agroup__init_html_ga4589960486ec43dcd63bd985f1c4f398"><div class="ttname"><a href="group__init.html#ga4589960486ec43dcd63bd985f1c4f398">initStateFromAmps</a></div><div class="ttdeci">void initStateFromAmps(Qureg qureg, qreal *reals, qreal *imags)</div><div class="ttdoc">Initialise qureg by specifying the complete statevector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00157">QuEST.c:157</a></div></div>
<div class="ttc" id="agroup__debug_html_ga11448560006dd165128e404b54ebb2f7"><div class="ttname"><a href="group__debug.html#ga11448560006dd165128e404b54ebb2f7">copyStateToGPU</a></div><div class="ttdeci">void copyStateToGPU(Qureg qureg)</div><div class="ttdoc">In GPU mode, this copies the state-vector (or density matrix) from RAM (qureg.stateVec) to VRAM / GPU...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu_8c_source.html#l00036">QuEST_cpu.c:36</a></div></div>
<div class="ttc" id="agroup__qasm_html_ga0054955857ce83b88e127d731796c23d"><div class="ttname"><a href="group__qasm.html#ga0054955857ce83b88e127d731796c23d">writeRecordedQASMToFile</a></div><div class="ttdeci">void writeRecordedQASMToFile(Qureg qureg, char *filename)</div><div class="ttdoc">Writes recorded QASM to a file, throwing an error if inaccessible.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00103">QuEST.c:103</a></div></div>
<div class="ttc" id="astructQuESTEnv_html_af22aacd7c9905accae28484785c193b4"><div class="ttname"><a href="structQuESTEnv.html#af22aacd7c9905accae28484785c193b4">QuESTEnv::numRanks</a></div><div class="ttdeci">int numRanks</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00245">QuEST.h:245</a></div></div>
<div class="ttc" id="astructComplexMatrix4_html_a1f6bb840b5a9e6252980cab7a14f1a35"><div class="ttname"><a href="structComplexMatrix4.html#a1f6bb840b5a9e6252980cab7a14f1a35">ComplexMatrix4::imag</a></div><div class="ttdeci">qreal imag[4][4]</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00128">QuEST.h:128</a></div></div>
<div class="ttc" id="agroup__calc_html_ga1416145280c62c5dd5ec9bed89b4cd05"><div class="ttname"><a href="group__calc.html#ga1416145280c62c5dd5ec9bed89b4cd05">getRealAmp</a></div><div class="ttdeci">qreal getRealAmp(Qureg qureg, long long int index)</div><div class="ttdoc">Get the real component of the complex probability amplitude at an index in the state vector.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00678">QuEST.c:678</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga2fa310101ecffd6aeba96f77b7d85f56"><div class="ttname"><a href="group__unitary.html#ga2fa310101ecffd6aeba96f77b7d85f56">controlledPhaseFlip</a></div><div class="ttdeci">void controlledPhaseFlip(Qureg qureg, int idQubit1, int idQubit2)</div><div class="ttdoc">Apply the (two-qubit) controlled phase flip gate, also known as the controlled pauliZ gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00549">QuEST.c:549</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_a5131eeb67aafb4c19ac98270c3266742"><div class="ttname"><a href="structDiagonalOp.html#a5131eeb67aafb4c19ac98270c3266742">DiagonalOp::numQubits</a></div><div class="ttdeci">int numQubits</div><div class="ttdoc">The number of qubits this operator can act on (informing its size)</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00181">QuEST.h:181</a></div></div>
<div class="ttc" id="astructPauliHamil_html_a737e46b40ef8990cf004d22eb9dbe2e4"><div class="ttname"><a href="structPauliHamil.html#a737e46b40ef8990cf004d22eb9dbe2e4">PauliHamil::numSumTerms</a></div><div class="ttdeci">int numSumTerms</div><div class="ttdoc">The number of terms in the weighted sum, or the number of Pauli products.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00166">QuEST.h:166</a></div></div>
<div class="ttc" id="astructDiagonalOp_html"><div class="ttname"><a href="structDiagonalOp.html">DiagonalOp</a></div><div class="ttdoc">Represents a diagonal complex operator on the full Hilbert state of a Qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00178">QuEST.h:178</a></div></div>
<div class="ttc" id="agroup__type_html_gga1c703cf89629e4e9c7023cd402d67028a2c64a9aaee27f6bcfef894d159e759bd"><div class="ttname"><a href="group__type.html#gga1c703cf89629e4e9c7023cd402d67028a2c64a9aaee27f6bcfef894d159e759bd">PAULI_Y</a></div><div class="ttdeci">@ PAULI_Y</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00096">QuEST.h:96</a></div></div>
<div class="ttc" id="astructPauliHamil_html"><div class="ttname"><a href="structPauliHamil.html">PauliHamil</a></div><div class="ttdoc">Represents a weighted sum of pauli products.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00158">QuEST.h:158</a></div></div>
<div class="ttc" id="agroup__calc_html_ga73036c778d800703585ab3d8796a915f"><div class="ttname"><a href="group__calc.html#ga73036c778d800703585ab3d8796a915f">getNumQubits</a></div><div class="ttdeci">int getNumQubits(Qureg qureg)</div><div class="ttdoc">Get the number of qubits in a qureg object.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00668">QuEST.c:668</a></div></div>
<div class="ttc" id="agroup__calc_html_ga374ad70804998394ae41ebfe106258a6"><div class="ttname"><a href="group__calc.html#ga374ad70804998394ae41ebfe106258a6">calcInnerProduct</a></div><div class="ttdeci">Complex calcInnerProduct(Qureg bra, Qureg ket)</div><div class="ttdoc">Computes the inner product  of two equal-size state vectors, given by.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00910">QuEST.c:910</a></div></div>
<div class="ttc" id="agroup__type_html_ga8e1e6ad3254892edc2ee08712ea9d692"><div class="ttname"><a href="group__type.html#ga8e1e6ad3254892edc2ee08712ea9d692">destroyQureg</a></div><div class="ttdeci">void destroyQureg(Qureg qureg, QuESTEnv env)</div><div class="ttdoc">Deallocate a Qureg object representing a set of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00077">QuEST.c:77</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaeb975903209000ebbaf50ef1cc353a79"><div class="ttname"><a href="group__unitary.html#gaeb975903209000ebbaf50ef1cc353a79">controlledMultiQubitUnitary</a></div><div class="ttdeci">void controlledMultiQubitUnitary(Qureg qureg, int ctrl, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general controlled multi-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00314">QuEST.c:314</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga2cf7dece0efea4207349f872cdcb7e81"><div class="ttname"><a href="group__decoherence.html#ga2cf7dece0efea4207349f872cdcb7e81">mixTwoQubitKrausMap</a></div><div class="ttdeci">void mixTwoQubitKrausMap(Qureg qureg, int target1, int target2, ComplexMatrix4 *ops, int numOps)</div><div class="ttdoc">Apply a general two-qubit Kraus map to a density matrix, as specified by at most sixteen Kraus operat...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01075">QuEST.c:1075</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html_a446e8a077597e4f76049d547df0c9738"><div class="ttname"><a href="structComplexMatrixN.html#a446e8a077597e4f76049d547df0c9738">ComplexMatrixN::real</a></div><div class="ttdeci">qreal ** real</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00139">QuEST.h:139</a></div></div>
<div class="ttc" id="agroup__debug_html_gaa696c94112e5fbbc996af10dfc4e2c1c"><div class="ttname"><a href="group__debug.html#gaa696c94112e5fbbc996af10dfc4e2c1c">initDebugState</a></div><div class="ttdeci">void initDebugState(Qureg qureg)</div><div class="ttdoc">Initialises qureg to be in the un-normalised, non-physical state with with n-th complex amplitude (2n...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01308">QuEST.c:1308</a></div></div>
<div class="ttc" id="astructQureg_html_a6b7912365d7ad8ff9b986fcad0c6ca3a"><div class="ttname"><a href="structQureg.html#a6b7912365d7ad8ff9b986fcad0c6ca3a">Qureg::qasmLog</a></div><div class="ttdeci">QASMLogger * qasmLog</div><div class="ttdoc">Storage for generated QASM output.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00232">QuEST.h:232</a></div></div>
<div class="ttc" id="astructQureg_html_a8bb9f7517470a0cc406951935f37b64f"><div class="ttname"><a href="structQureg.html#a8bb9f7517470a0cc406951935f37b64f">Qureg::secondLevelReduction</a></div><div class="ttdeci">qreal * secondLevelReduction</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00229">QuEST.h:229</a></div></div>
<div class="ttc" id="agroup__qasm_html_ga65bf1906298ca6355e2942f4923d77b6"><div class="ttname"><a href="group__qasm.html#ga65bf1906298ca6355e2942f4923d77b6">startRecordingQASM</a></div><div class="ttdeci">void startRecordingQASM(Qureg qureg)</div><div class="ttdoc">Enable QASM recording.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00087">QuEST.c:87</a></div></div>
<div class="ttc" id="agroup__operator_html_ga6fc26cf857db070e12959e59ecfed8a6"><div class="ttname"><a href="group__operator.html#ga6fc26cf857db070e12959e59ecfed8a6">applyPauliSum</a></div><div class="ttdeci">void applyPauliSum(Qureg inQureg, enum pauliOpType *allPauliCodes, qreal *termCoeffs, int numSumTerms, Qureg outQureg)</div><div class="ttdoc">Modifies outQureg to be the result of applying the weighted sum of Pauli products (a Hermitian but no...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00808">QuEST.c:808</a></div></div>
<div class="ttc" id="agroup__operator_html_ga358e7094a98851afa86d27f0147e32a1"><div class="ttname"><a href="group__operator.html#ga358e7094a98851afa86d27f0147e32a1">applyMatrixN</a></div><div class="ttdeci">void applyMatrixN(Qureg qureg, int *targs, int numTargs, ComplexMatrixN u)</div><div class="ttdoc">Apply a general N-by-N matrix, which may be non-unitary, on any number of target qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00863">QuEST.c:863</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaefaa7acba90373efe4e0f0b94987c734"><div class="ttname"><a href="group__unitary.html#gaefaa7acba90373efe4e0f0b94987c734">compactUnitary</a></div><div class="ttdeci">void compactUnitary(Qureg qureg, int targetQubit, Complex alpha, Complex beta)</div><div class="ttdoc">Apply a single-qubit unitary parameterised by two given complex scalars.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00405">QuEST.c:405</a></div></div>
<div class="ttc" id="agroup__init_html_ga0379e21efca0767a22607fc0e26a5a22"><div class="ttname"><a href="group__init.html#ga0379e21efca0767a22607fc0e26a5a22">initClassicalState</a></div><div class="ttdeci">void initClassicalState(Qureg qureg, long long int stateInd)</div><div class="ttdoc">Initialise a set of  qubits to the classical state (also known as a &quot;computational basis state&quot;) with...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00134">QuEST.c:134</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga8e0f03e745778a89d6f59c3c25e32df8"><div class="ttname"><a href="group__unitary.html#ga8e0f03e745778a89d6f59c3c25e32df8">pauliY</a></div><div class="ttdeci">void pauliY(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit Pauli-Y (also known as the Y or sigma-Y) gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00444">QuEST.c:444</a></div></div>
<div class="ttc" id="astructQureg_html"><div class="ttname"><a href="structQureg.html">Qureg</a></div><div class="ttdoc">Represents a system of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00203">QuEST.h:203</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga7214a79aa22ae7a50ad6f38615968cb0"><div class="ttname"><a href="group__unitary.html#ga7214a79aa22ae7a50ad6f38615968cb0">controlledPhaseShift</a></div><div class="ttdeci">void controlledPhaseShift(Qureg qureg, int idQubit1, int idQubit2, qreal angle)</div><div class="ttdoc">Introduce a phase factor  on state  of qubits idQubit1 and idQubit2.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00499">QuEST.c:499</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga14282bdb1dc65760ca9ecbe6305eb770"><div class="ttname"><a href="group__decoherence.html#ga14282bdb1dc65760ca9ecbe6305eb770">mixTwoQubitDephasing</a></div><div class="ttdeci">void mixTwoQubitDephasing(Qureg qureg, int qubit1, int qubit2, qreal prob)</div><div class="ttdoc">Mixes a density matrix qureg to induce two-qubit dephasing noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01011">QuEST.c:1011</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaa3fb996a5cadd098f4acd8aec955cf9c"><div class="ttname"><a href="group__unitary.html#gaa3fb996a5cadd098f4acd8aec955cf9c">controlledUnitary</a></div><div class="ttdeci">void controlledUnitary(Qureg qureg, int controlQubit, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general controlled unitary (single control, single target), which can include a global phase ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00361">QuEST.c:361</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html_afde13e469a3b4f179f45e53d1ec0a7cf"><div class="ttname"><a href="structComplexMatrixN.html#afde13e469a3b4f179f45e53d1ec0a7cf">ComplexMatrixN::imag</a></div><div class="ttdeci">qreal ** imag</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00140">QuEST.h:140</a></div></div>
<div class="ttc" id="agroup__type_html_ga12a6c59ebbfba8bdb9453a4138027d46"><div class="ttname"><a href="group__type.html#ga12a6c59ebbfba8bdb9453a4138027d46">initDiagonalOp</a></div><div class="ttdeci">void initDiagonalOp(DiagonalOp op, qreal *real, qreal *imag)</div><div class="ttdoc">Updates the entire DiagonalOp op with the given elements, of which there must be 2^op....</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01286">QuEST.c:1286</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga26baa057f5db8804825c2d611386753b"><div class="ttname"><a href="group__unitary.html#ga26baa057f5db8804825c2d611386753b">phaseShift</a></div><div class="ttdeci">void phaseShift(Qureg qureg, int targetQubit, qreal angle)</div><div class="ttdoc">Shift the phase between  and  of a single qubit by a given angle.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00488">QuEST.c:488</a></div></div>
<div class="ttc" id="aQuEST__precision_8h_html"><div class="ttname"><a href="QuEST__precision_8h.html">QuEST_precision.h</a></div></div>
<div class="ttc" id="astructQureg_html_a441e4cacef6bd17adb9813c7442d42fe"><div class="ttname"><a href="structQureg.html#a441e4cacef6bd17adb9813c7442d42fe">Qureg::stateVec</a></div><div class="ttdeci">ComplexArray stateVec</div><div class="ttdoc">Computational state amplitudes - a subset thereof in the MPI version.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00222">QuEST.h:222</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaa5a138473a4433c853c6e66e7aabc237"><div class="ttname"><a href="group__unitary.html#gaa5a138473a4433c853c6e66e7aabc237">controlledNot</a></div><div class="ttdeci">void controlledNot(Qureg qureg, int controlQubit, int targetQubit)</div><div class="ttdoc">Apply the controlled not (single control, single target) gate, also known as the c-X,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00525">QuEST.c:525</a></div></div>
<div class="ttc" id="astructComplexMatrix2_html_a3ea98d545b67a190ee6abe936c72076f"><div class="ttname"><a href="structComplexMatrix2.html#a3ea98d545b67a190ee6abe936c72076f">ComplexMatrix2::real</a></div><div class="ttdeci">qreal real[2][2]</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00116">QuEST.h:116</a></div></div>
<div class="ttc" id="agroup__calc_html_ga8cbe422d4981bf06847d229a4c6aa3df"><div class="ttname"><a href="group__calc.html#ga8cbe422d4981bf06847d229a4c6aa3df">getNumAmps</a></div><div class="ttdeci">long long int getNumAmps(Qureg qureg)</div><div class="ttdoc">Get the number of probability amplitudes in a qureg object, given by 2^numQubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00672">QuEST.c:672</a></div></div>
<div class="ttc" id="agroup__debug_html_gaa8437ef3bf135231e2916e64dde1c94e"><div class="ttname"><a href="group__debug.html#gaa8437ef3bf135231e2916e64dde1c94e">seedQuESTDefault</a></div><div class="ttdeci">void seedQuESTDefault(void)</div><div class="ttdoc">Seed the Mersenne Twister used for random number generation in the QuEST environment with an example ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l01318">QuEST_cpu_distributed.c:1318</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_a2c6eab631ef48b4978db026c98180eee"><div class="ttname"><a href="structDiagonalOp.html#a2c6eab631ef48b4978db026c98180eee">DiagonalOp::numElemsPerChunk</a></div><div class="ttdeci">long long int numElemsPerChunk</div><div class="ttdoc">The number of the 2^numQubits amplitudes stored on each distributed node.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00183">QuEST.h:183</a></div></div>
<div class="ttc" id="astructQureg_html_acf78445e9435d09f44f0cc832c6aee79"><div class="ttname"><a href="structQureg.html#acf78445e9435d09f44f0cc832c6aee79">Qureg::isDensityMatrix</a></div><div class="ttdeci">int isDensityMatrix</div><div class="ttdoc">Whether this instance is a density-state representation.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00206">QuEST.h:206</a></div></div>
<div class="ttc" id="agroup__debug_html_gaf8a14ae79c3fb2c0b5f6255cc37bebf9"><div class="ttname"><a href="group__debug.html#gaf8a14ae79c3fb2c0b5f6255cc37bebf9">reportQuESTEnv</a></div><div class="ttdeci">void reportQuESTEnv(QuESTEnv env)</div><div class="ttdoc">Report information about the QuEST environment.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00179">QuEST_cpu_distributed.c:179</a></div></div>
<div class="ttc" id="astructComplexMatrixN_html_a606f7afbc3f65a596bdca21cb43be6a8"><div class="ttname"><a href="structComplexMatrixN.html#a606f7afbc3f65a596bdca21cb43be6a8">ComplexMatrixN::numQubits</a></div><div class="ttdeci">int numQubits</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00138">QuEST.h:138</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga4193c14cfb918fa3291fb0648058d63e"><div class="ttname"><a href="group__unitary.html#ga4193c14cfb918fa3291fb0648058d63e">pauliX</a></div><div class="ttdeci">void pauliX(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit Pauli-X (also known as the X, sigma-X, NOT or bit-flip) gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00433">QuEST.c:433</a></div></div>
<div class="ttc" id="agroup__type_html_gabd07eee133dcd4e6ae7c2d2ce4c42978"><div class="ttname"><a href="group__type.html#gabd07eee133dcd4e6ae7c2d2ce4c42978">createCloneQureg</a></div><div class="ttdeci">Qureg createCloneQureg(Qureg qureg, QuESTEnv env)</div><div class="ttdoc">Create a new Qureg which is an exact clone of the passed qureg, which can be either a statevector or ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00064">QuEST.c:64</a></div></div>
<div class="ttc" id="agroup__calc_html_ga50ee589fd5ceab52fdd70d0082352b41"><div class="ttname"><a href="group__calc.html#ga50ee589fd5ceab52fdd70d0082352b41">calcExpecPauliSum</a></div><div class="ttdeci">qreal calcExpecPauliSum(Qureg qureg, enum pauliOpType *allPauliCodes, qreal *termCoeffs, int numSumTerms, Qureg workspace)</div><div class="ttdoc">Computes the expected value of a sum of products of Pauli operators.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00961">QuEST.c:961</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga3d89916b46bc4aaf23e938022e6c89c1"><div class="ttname"><a href="group__unitary.html#ga3d89916b46bc4aaf23e938022e6c89c1">controlledTwoQubitUnitary</a></div><div class="ttdeci">void controlledTwoQubitUnitary(Qureg qureg, int controlQubit, int targetQubit1, int targetQubit2, ComplexMatrix4 u)</div><div class="ttdoc">Apply a general controlled two-qubit unitary (including a global phase factor).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00270">QuEST.c:270</a></div></div>
<div class="ttc" id="astructPauliHamil_html_acb49fff0e3160ea1904c9ca34408b4e1"><div class="ttname"><a href="structPauliHamil.html#acb49fff0e3160ea1904c9ca34408b4e1">PauliHamil::numQubits</a></div><div class="ttdeci">int numQubits</div><div class="ttdoc">The number of qubits for which this Hamiltonian is defined.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00168">QuEST.h:168</a></div></div>
<div class="ttc" id="astructQureg_html_ad08dff5316b8937f4b2a1417591543dc"><div class="ttname"><a href="structQureg.html#ad08dff5316b8937f4b2a1417591543dc">Qureg::numQubitsRepresented</a></div><div class="ttdeci">int numQubitsRepresented</div><div class="ttdoc">The number of qubits represented in either the state-vector or density matrix.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00208">QuEST.h:208</a></div></div>
<div class="ttc" id="astructQureg_html_adef4935cac95763c29164cf99b144ed4"><div class="ttname"><a href="structQureg.html#adef4935cac95763c29164cf99b144ed4">Qureg::numAmpsTotal</a></div><div class="ttdeci">long long int numAmpsTotal</div><div class="ttdoc">Total number of amplitudes, which are possibly distributed among machines.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00215">QuEST.h:215</a></div></div>
<div class="ttc" id="agroup__debug_html_gac7e38d768a1bd79019f88cc1e6295092"><div class="ttname"><a href="group__debug.html#gac7e38d768a1bd79019f88cc1e6295092">syncQuESTSuccess</a></div><div class="ttdeci">int syncQuESTSuccess(int successCode)</div><div class="ttdoc">Performs a logical AND on all successCodes held by all processes.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00166">QuEST_cpu_distributed.c:166</a></div></div>
<div class="ttc" id="astructDiagonalOp_html_a1d66088bed235d524cd452b107694d5c"><div class="ttname"><a href="structDiagonalOp.html#a1d66088bed235d524cd452b107694d5c">DiagonalOp::real</a></div><div class="ttdeci">qreal * real</div><div class="ttdoc">The real values of the 2^numQubits complex elements.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00189">QuEST.h:189</a></div></div>
<div class="ttc" id="astructComplex_html_ab5b2e2eca02131fc74b289a83636cbe3"><div class="ttname"><a href="structComplex.html#ab5b2e2eca02131fc74b289a83636cbe3">Complex::real</a></div><div class="ttdeci">qreal real</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00105">QuEST.h:105</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga97d563fa8f4bc51f720bbb653f5480b3"><div class="ttname"><a href="group__decoherence.html#ga97d563fa8f4bc51f720bbb653f5480b3">mixDensityMatrix</a></div><div class="ttdeci">void mixDensityMatrix(Qureg combineQureg, qreal prob, Qureg otherQureg)</div><div class="ttdoc">Modifies combineQureg to become (1-prob)combineProb + prob otherQureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00772">QuEST.c:772</a></div></div>
<div class="ttc" id="agroup__type_html_ga3392816c0643414165c2f5caeec17df0"><div class="ttname"><a href="group__type.html#ga3392816c0643414165c2f5caeec17df0">createQureg</a></div><div class="ttdeci">Qureg createQureg(int numQubits, QuESTEnv env)</div><div class="ttdoc">Create a Qureg object representing a set of qubits which will remain in a pure state.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00036">QuEST.c:36</a></div></div>
<div class="ttc" id="agroup__type_html_gac1c8ed909b33bd55ae680901006051b6"><div class="ttname"><a href="group__type.html#gac1c8ed909b33bd55ae680901006051b6">destroyPauliHamil</a></div><div class="ttdeci">void destroyPauliHamil(PauliHamil hamil)</div><div class="ttdoc">Destroy a PauliHamil instance, created with either createPauliHamil() or createPauliHamilFromFile().</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01163">QuEST.c:1163</a></div></div>
<div class="ttc" id="agroup__unitary_html_gac15907193da5a7c48b9610a26e669064"><div class="ttname"><a href="group__unitary.html#gac15907193da5a7c48b9610a26e669064">tGate</a></div><div class="ttdeci">void tGate(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit T gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00477">QuEST.c:477</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga3250d0d95b5d755cad542a6a2372b894"><div class="ttname"><a href="group__unitary.html#ga3250d0d95b5d755cad542a6a2372b894">multiRotateZ</a></div><div class="ttdeci">void multiRotateZ(Qureg qureg, int *qubits, int numQubits, qreal angle)</div><div class="ttdoc">Apply a multi-qubit Z rotation on a selected number of qubits.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00626">QuEST.c:626</a></div></div>
<div class="ttc" id="astructComplex_html_a84f5439aad0ef495efdd3b4c1c02d27e"><div class="ttname"><a href="structComplex.html#a84f5439aad0ef495efdd3b4c1c02d27e">Complex::imag</a></div><div class="ttdeci">qreal imag</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00106">QuEST.h:106</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga9a77f84e1aa7d25d036b14d7d0cd8b61"><div class="ttname"><a href="group__decoherence.html#ga9a77f84e1aa7d25d036b14d7d0cd8b61">mixPauli</a></div><div class="ttdeci">void mixPauli(Qureg qureg, int targetQubit, qreal probX, qreal probY, qreal probZ)</div><div class="ttdoc">Mixes a density matrix qureg to induce general single-qubit Pauli noise.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01054">QuEST.c:1054</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga6532decd6c404189915563492f090e6f"><div class="ttname"><a href="group__unitary.html#ga6532decd6c404189915563492f090e6f">hadamard</a></div><div class="ttdeci">void hadamard(Qureg qureg, int targetQubit)</div><div class="ttdoc">Apply the single-qubit Hadamard gate.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00177">QuEST.c:177</a></div></div>
<div class="ttc" id="astructComplex_html"><div class="ttname"><a href="structComplex.html">Complex</a></div><div class="ttdoc">Represents one complex number.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00103">QuEST.h:103</a></div></div>
<div class="ttc" id="agroup__operator_html_gadfb5c1d99a22ce666fc715a8da2e0950"><div class="ttname"><a href="group__operator.html#gadfb5c1d99a22ce666fc715a8da2e0950">applyMatrix2</a></div><div class="ttdeci">void applyMatrix2(Qureg qureg, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general 2-by-2 matrix, which may be non-unitary.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00844">QuEST.c:844</a></div></div>
<div class="ttc" id="agroup__type_html_ga8ba2c3388dd64d9348c3b091852d36d4"><div class="ttname"><a href="group__type.html#ga8ba2c3388dd64d9348c3b091852d36d4">createQuESTEnv</a></div><div class="ttdeci">QuESTEnv createQuESTEnv(void)</div><div class="ttdoc">Create the QuEST execution environment.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST__cpu__distributed_8c_source.html#l00129">QuEST_cpu_distributed.c:129</a></div></div>
<div class="ttc" id="agroup__unitary_html_gab23a8b022ec83b9d423961ca87cd8cb5"><div class="ttname"><a href="group__unitary.html#gab23a8b022ec83b9d423961ca87cd8cb5">rotateZ</a></div><div class="ttdeci">void rotateZ(Qureg qureg, int rotQubit, qreal angle)</div><div class="ttdoc">Rotate a single qubit by a given angle around the Z-axis of the Bloch-sphere (also known as a phase s...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00210">QuEST.c:210</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaa700dc9657ade4cf16f1cad1624c5332"><div class="ttname"><a href="group__unitary.html#gaa700dc9657ade4cf16f1cad1624c5332">multiControlledUnitary</a></div><div class="ttdeci">void multiControlledUnitary(Qureg qureg, int *controlQubits, int numControlQubits, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general multiple-control single-target unitary, which can include a global phase factor.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00374">QuEST.c:374</a></div></div>
<div class="ttc" id="agroup__init_html_ga2f049055d4a51d0ea4d1a43b5234dedb"><div class="ttname"><a href="group__init.html#ga2f049055d4a51d0ea4d1a43b5234dedb">initZeroState</a></div><div class="ttdeci">void initZeroState(Qureg qureg)</div><div class="ttdoc">Initialise a set of  qubits to the classical zero state .</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00113">QuEST.c:113</a></div></div>
<div class="ttc" id="agroup__calc_html_ga658b3a5cab5e73a17a7fd76a83583a22"><div class="ttname"><a href="group__calc.html#ga658b3a5cab5e73a17a7fd76a83583a22">calcDensityInnerProduct</a></div><div class="ttdeci">qreal calcDensityInnerProduct(Qureg rho1, Qureg rho2)</div><div class="ttdoc">Computes the Hilbert-Schmidt scalar product (which is equivalent to the Frobenius inner product of ma...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00918">QuEST.c:918</a></div></div>
<div class="ttc" id="agroup__type_html_ga93e55b6650b408abb30a1d4a8bce757c"><div class="ttname"><a href="group__type.html#ga93e55b6650b408abb30a1d4a8bce757c">createDensityQureg</a></div><div class="ttdeci">Qureg createDensityQureg(int numQubits, QuESTEnv env)</div><div class="ttdoc">Create a Qureg for qubits which are represented by a density matrix, and can be in mixed states.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00050">QuEST.c:50</a></div></div>
<div class="ttc" id="astructQureg_html_a2d0007a026a4231b338a5037c4e861b2"><div class="ttname"><a href="structQureg.html#a2d0007a026a4231b338a5037c4e861b2">Qureg::firstLevelReduction</a></div><div class="ttdeci">qreal * firstLevelReduction</div><div class="ttdoc">Storage for reduction of probabilities on GPU.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00229">QuEST.h:229</a></div></div>
<div class="ttc" id="agroup__operator_html_ga35b6321c578a8c69470132b5ee95f930"><div class="ttname"><a href="group__operator.html#ga35b6321c578a8c69470132b5ee95f930">applyTrotterCircuit</a></div><div class="ttdeci">void applyTrotterCircuit(Qureg qureg, PauliHamil hamil, qreal time, int order, int reps)</div><div class="ttdoc">Applies a trotterisation of unitary evolution  to qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00830">QuEST.c:830</a></div></div>
<div class="ttc" id="agroup__type_html_ga35b28710877c462927366fa602e591cb"><div class="ttname"><a href="group__type.html#ga35b28710877c462927366fa602e591cb">createPauliHamil</a></div><div class="ttdeci">PauliHamil createPauliHamil(int numQubits, int numSumTerms)</div><div class="ttdoc">Create a PauliHamil instance, which is a Hamiltonian expressed as a real-weighted sum of products of ...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01147">QuEST.c:1147</a></div></div>
<div class="ttc" id="agroup__init_html_ga234bd34016f08288532791903b9884b5"><div class="ttname"><a href="group__init.html#ga234bd34016f08288532791903b9884b5">initPlusState</a></div><div class="ttdeci">void initPlusState(Qureg qureg)</div><div class="ttdoc">Initialise a set of  qubits to the plus state  (and similarly  for density matrices).</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00125">QuEST.c:125</a></div></div>
<div class="ttc" id="agroup__calc_html_ga15cfad3f3d26339128e3be32ae7deacd"><div class="ttname"><a href="group__calc.html#ga15cfad3f3d26339128e3be32ae7deacd">calcExpecPauliProd</a></div><div class="ttdeci">qreal calcExpecPauliProd(Qureg qureg, int *targetQubits, enum pauliOpType *pauliCodes, int numTargets, Qureg workspace)</div><div class="ttdoc">Computes the expected value of a product of Pauli operators.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00952">QuEST.c:952</a></div></div>
<div class="ttc" id="agroup__unitary_html_gaf7e15bf09c64082e0a8467998eb25623"><div class="ttname"><a href="group__unitary.html#gaf7e15bf09c64082e0a8467998eb25623">controlledCompactUnitary</a></div><div class="ttdeci">void controlledCompactUnitary(Qureg qureg, int controlQubit, int targetQubit, Complex alpha, Complex beta)</div><div class="ttdoc">Apply a controlled unitary (single control, single target) parameterised by two given complex scalars...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00418">QuEST.c:418</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga41b946a82982c3fa3dc2a7395665bc90"><div class="ttname"><a href="group__unitary.html#ga41b946a82982c3fa3dc2a7395665bc90">multiStateControlledUnitary</a></div><div class="ttdeci">void multiStateControlledUnitary(Qureg qureg, int *controlQubits, int *controlState, int numControlQubits, int targetQubit, ComplexMatrix2 u)</div><div class="ttdoc">Apply a general multiple-control, conditioned on a specific bit sequence, single-target unitary,...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00389">QuEST.c:389</a></div></div>
<div class="ttc" id="agroup__unitary_html_ga75d5e65f87c68403602a669b9c6d52b0"><div class="ttname"><a href="group__unitary.html#ga75d5e65f87c68403602a669b9c6d52b0">sqrtSwapGate</a></div><div class="ttdeci">void sqrtSwapGate(Qureg qureg, int qb1, int qb2)</div><div class="ttdoc">Performs a sqrt SWAP gate between qubit1 and qubit2.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00613">QuEST.c:613</a></div></div>
<div class="ttc" id="agroup__decoherence_html_ga65b4c0944090fae78a37ba3b94811ace"><div class="ttname"><a href="group__decoherence.html#ga65b4c0944090fae78a37ba3b94811ace">mixMultiQubitKrausMap</a></div><div class="ttdeci">void mixMultiQubitKrausMap(Qureg qureg, int *targets, int numTargets, ComplexMatrixN *ops, int numOps)</div><div class="ttdoc">Apply a general N-qubit Kraus map to a density matrix, as specified by at most (2N)^2 Kraus operators...</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01085">QuEST.c:1085</a></div></div>
<div class="ttc" id="agroup__qasm_html_gacf139d0a54b1f9e5c2f2feff742b8c76"><div class="ttname"><a href="group__qasm.html#gacf139d0a54b1f9e5c2f2feff742b8c76">printRecordedQASM</a></div><div class="ttdeci">void printRecordedQASM(Qureg qureg)</div><div class="ttdoc">Print recorded QASM to stdout.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00099">QuEST.c:99</a></div></div>
<div class="ttc" id="agroup__debug_html_gaa33ed720560d051eb4126b4a534bc4c6"><div class="ttname"><a href="group__debug.html#gaa33ed720560d051eb4126b4a534bc4c6">reportStateToScreen</a></div><div class="ttdeci">void reportStateToScreen(Qureg qureg, QuESTEnv env, int reportRank)</div><div class="ttdoc">Print the current state vector of probability amplitudes for a set of qubits to standard out.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01324">QuEST.c:1324</a></div></div>
<div class="ttc" id="agroup__type_html_gaebf896dd8d5eeaf9fd896f6cc8e334fe"><div class="ttname"><a href="group__type.html#gaebf896dd8d5eeaf9fd896f6cc8e334fe">createDiagonalOp</a></div><div class="ttdeci">DiagonalOp createDiagonalOp(int numQubits, QuESTEnv env)</div><div class="ttdoc">Creates a DiagonalOp representing a diagonal operator on the full Hilbert space of a Qureg.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l01267">QuEST.c:1267</a></div></div>
<div class="ttc" id="astructComplexMatrix2_html"><div class="ttname"><a href="structComplexMatrix2.html">ComplexMatrix2</a></div><div class="ttdoc">Represents a 2x2 matrix of complex numbers.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8h_source.html#l00114">QuEST.h:114</a></div></div>
<div class="ttc" id="agroup__unitary_html_gafbbded98b7233f5da06d74d1db5cbfdb"><div class="ttname"><a href="group__unitary.html#gafbbded98b7233f5da06d74d1db5cbfdb">controlledRotateY</a></div><div class="ttdeci">void controlledRotateY(Qureg qureg, int controlQubit, int targetQubit, qreal angle)</div><div class="ttdoc">Applies a controlled rotation by a given angle around the Y-axis of the Bloch-sphere.</div><div class="ttdef"><b>Definition:</b> <a href="QuEST_8c_source.html#l00233">QuEST.c:233</a></div></div>
<!-- HTML footer for doxygen 1.8.8-->
<!-- start footer part -->
</div>
</div>
</div>
</div>
</div>
</body>
        <script type="text/javascript" src="boot.js"></script>
</html>
